Making sense of the Spring Projects on Spring.io

Making sense of the Spring Projects on Spring.io

Today a friend of mine asked me to enlighten him about Spring Framework.

Midway during lesson,  he enquired : “why there are so many Spring Projects, what to use and when?”

Source: ( https://spring.io/projects )

Yes, this is the first question that i face while introducing budding developers to Spring Framework. 

This post is to uncomplicate things and answer the very question: “How do i make sense of numerous Spring Projects on Spring.io”

When Rod Johnson released Spring 1.0 MR in March, 2004 it started a kind of revolution in the world of J2EE. At that point J2EE was suffering from too much boilerplate code and lack of best practices.

The main aim of Spring was to reduce boilerplate code, complexity and bring the best practices.

Spring has come a long way from its inception and has now spawned into many “Projects”.The latest spring projects can be found on : https://spring.io/projects

Projects..

The projects are repackaging of the modular Spring Core Framework, by adding Layers or sometimes removing a few to best suite the development needs. They are distributed as Maven/Gradle dependencies from Spring.io

For example, Spring Boot (a Spring Project ) embeds Tomcat, Jetty or Undertow server to help you run your Spring Applications as standalone Apps without worrying about deployment runtimes.

Projects in the Attic

These are retired projects. They are no longer maintained by their creators / maintainers. Its best advised not to make use of them, if you are starting to build an application from scratch.

These projects are always a good source to browse through some legacy code base and look for some classic coding practices.

Community Projects

Community Projects are those, whose development is primarily done by the open source developer community around the world.

Pivotal Professional Support (Pivotal is the company who maintains Spring Framework Releases ) might not be available for the same.

Main Projects:

The main projects, viz. Spring I/O , Spring Boot , Spring XD etc adds layers to the core Spring Framework to bring the power of Spring for Different Business Use Cases.

This helps in reduce boilerplate codes in your applications.

Let us take an example of Spring Data,Spring data is an umbrella of projects, where it aims to provide a consistent Data Access Model for a spring developer to access data from relational as well as no-sql ( non-relational ) databases. It helps the developer to achieve the object-db mapping with ease without worrying much about the actual code interacting with the DB.

There are numerous Spring Projects and sometimes the question arises , which one should you start with and most importantly When?

Well, to develop an Enterprise grade application, we might need to use multiple projects and thus the question can only be answered out of experience.

A Spring Boot application might need to use the Spring Security Project for Authentication and Authorisation.

The examples are many.

Conclusion

Theoretically speaking, you don't need to have anything else, other than Spring Core to build a full fledged spring application. But in that case you might end up with lot of boilerplate code maintaining your session, security, data access etc . And not to mention some bugs creeping in !!!

So the choice is completely left to the developer !!!

Happy Coding :)

PS: I am planning to publish a series of articles, explaining the scenarios where you can make use of certain spring projects and even coding them through. Please let me know your suggestions.

If you want to know more on what i love to do with computers, please visit: https://www.tapadyuti.com

Vickrant Taneja

Engineering @SAP Ariba

7 年

Very well explained!!

回复

要查看或添加评论,请登录

Tapadyuti Chatterjee的更多文章

社区洞察

其他会员也浏览了