Spring is a lightweight inversion of control and aspect-oriented container framework.
Lightweight : Spring is lightweight when it comes to size and transparency. The basic version of spring framework is around 1MB. And the processing overhead is also very negligible.
Inversion of control (IoC) : Loose coupling is achieved in spring using the technique Inversion of Control. The objects declare their dependencies instead of creating or looking for dependent objects.
Aspect oriented programming (AOP) : Spring supports Aspect oriented programming and enables cohesive development by separating application business logic from system services.
Container : Spring contains and manages the life cycle and configuration of application objects.
Framework : Spring provides most of the intra functionality leaving rest of the coding to the developer.
What are the different modules in Spring framework?
- The Core container module
- Application context module
- AOP module (Aspect Oriented Programming)
- JDBC abstraction and DAO module
- O/R mapping integration module (Object/Relational)
- Web module
- MVC framework module
What is the Core container module?
This module provides the fundamental functionality of the spring framework. In this module BeanFactory is the heart of any spring-based application. The entire framework is built on the top of this module. This module makes the Spring container.
What is Application context module?
The Application context module makes spring a framework. This module extends the concept of BeanFactory, providing support for internationalization (I18N) messages, application lifecycle events, and validation. This module also supplies many enterprise services such JNDI access, EJB integration, remoting, and scheduling. It also provides support to other frameworks.
What is AOP module?
The AOP module is used for developing aspects for Spring-enabled application. Much of the support has been provided by the AOP Alliance in order to ensure the interoperability between Spring and other AOP frameworks. This module also introduces metadata programming to Spring. Using Spring’s metadata support, we can add annotations to source code that instruct Spring on where and how to apply aspects.
What is JDBC abstraction and DAO module?
Using this module we can keep up the database code clean and simple, and prevent problems that result from a failure to close database resources. A new layer of meaningful exceptions on top of the error messages given by several database servers is bought in this module. In addition, this module uses Spring’s AOP module to provide transaction management services for objects in a Spring application.
What are object/relational mapping integration module?
Spring also supports for using of an object/relational mapping (ORM) tool over straight JDBC by providing the ORM module. Spring provide support to tie into several popular ORM frameworks, including Hibernate, JDO, and iBATIS SQL Maps. Spring’s transaction management supports each of these ORM frameworks as well as JDBC.
What is web module?
This module is built on the application context module, providing a context that is appropriate for web-based applications. This module also contains support for several web-oriented tasks such as transparently handling multipart requests for file uploads and programmatic binding of request parameters to your business objects. It also contains integration support with Jakarta Struts.