How the Empire of Spring Framework Derived
In recent days, I spoke some of my friends about SpringBoot. We did talk about the Spring IOC(Inversion of Control)/DI(Dependency Injection), it does not seems he got all behind the ideas there. I think because the SpringBoot Encapsulation has done so well in this case which it is easier for new developer to start on it.
We can use this chance to talk about how the SpringFramework derived from the original version.
So why we do need Spring Framework?
Someone of you might heard about EJB even it is a very legacy technology in J2EE.
Also you might not know there was a book called Expert One-on-One J2EE Development without EJB. This is all where it was started.
The introduction of Spring Framework is to help on lightweight J2EE development, started the concept with IOC/DI lightweight. It did use this concept to replace EJB's shortcomings
Here are some key version updates derived from Spring Framework]
- Spring 1.0 XML based configuration of IOC/DI
- Spring 2.X started to support annotation based configuration of IOC/DI
- Spring 3.0 support the enhanced annotation configuration of IOC/DI, REsT, H2 support
领英推荐
- Spring 4.0 Full comprehensive support of annotation configuration of IOC/DI, Rest Controller
- Spring 4.X with SpringBoot introduced, e.g., ready to go code, fast development/test/deployment, level up the app development without the manual coding/configuration overhead
- Spring 5.X I think after the Spring framework has refactored the major code implementation here, it is all used to give better support of SpringBoot, make SpringBoot even more powerful sit on top of Spring Framework. SpringBoot has reached to Java development platforms chosen。
- Spring 6.X started fully support JDK 17+ and newer version of JAVAEE - Jakarta EE
If you started to review what are the upgrades from Spring Framework from 1.0 to 6.X, you can see it is a generic framework optimized the design to fit and speed up on java application development with its technology upgrades. Some of Spring Framework concepts are the ones that we can used in the daily development.
To be as a Pluggable component interface is the most powerful of Spring Framework. Its componentized interface, Optimized design, and supply the development tools that most of developers needed to build up an application.
PS: But in most of cases, a framework is just a tool. In your real daily development, I will face various situations. For example, migrate legacy system/code, system integration, performance tuning, upgrade to support more things as well.
If you want to start to be a good software enginneer, you need to more focus on how the framework concept works. Why/When we need it? What is used for? Not everytime a new project come, we will always say - Do it in SpringBoot. It is not right.
So it is better to understand the Spring Framework e.g., Spring IOC, Spring Data/REST, Spring MVC. Started on SpringBoot next.