What is Spring Framework
Spring Framework is a lightweight solution for building your enterprise ready software. It provides comprehensive infra support and allows the developers to quickly wire up their applications. It also allows the developers to focus on business logic.
Spring is so modular that you can selectively pick modules you need for your specific use case and don’t need to bother about other spring modules.
Spring became famous due to various problems that existed with the Enterprise Java Beans as it provided the Java developers with a better and much simpler approach to achieve the required business functionality.
Why use Spring Framework
There are plenty of reasons for building your next java application using spring.
- Spring is non-intrusive
This means that your application or business logic does not depend on the framework code and is generally replaceable with other frameworks.
- Easily Testable code
Due to non-intrusive nature of the spring applications it is very easy to test the spring applications.
- Flexibility and Easy Integration
Spring gives flexibility to developers to integrate with other frameworks and libraries in different layers. For example Web frameworks like Struts, JSP in the web layer or JPA, Hibernate in the data layer.
- Ahead of curve in terms of introducing new technologies
Spring was always ahead of curve in bringing new and better offerings for the developer community and kept on introducing new features together or even earlier than the Java releases, utilizing best java features and incorporating them in the framework.
The complete Spring Framework is modularized into various spring modules, close to 20 of them.
As shown in the figure below all these modules can be categorised into Core Container, Data Access/Integeration, Web, Aspect Oriented Programming(AOP), Messaging, Instrumentation and Test.
Spring Core Container
Core container provides the fundamental features of the spring framework and consists of spring-core, spring-beans, spring-context, spring-
context-support, and spring-expression
Provides Spring module utilities.
Provides the core spring features like the IoC and Dependency Injection features
Provides ApplicationContext providing a means to access objects.
Provides support for integrating common
Provides a powerful Expression Language for accessing and
For more Information and Guides refer to following links
Spring Official Guides