Spring framework architecture modules

Spring framework is designed in modular fashion from which a programmer can choose the applicable modules and ignore the rest. Spring framework modules are divided into categories given below.

Spring framework architecture Diagram:

1. Test:

Spring test module provides the supports for testing of spring components with JUnit or TestNG frameworks.

2. Core Container:

Spring core container contains the following:
a. Core: Core module provides the fundamental features of spring framework like IoC and DI.
b. Bean: Bean module provides the BeanFactory.
c. Context: Context module provides a way to access any object. ApplicationContext interface is the main part of Context module.
d. Expression language: Expression language module provides a way to manipulate objects at runtime.

3. Data Access/Integration contains the following:

a. JDBC: JDBC modules provides a JDBC-abstraction layer.
b. ORM: ORM provides integration layers for object-relational mapping APIs like JPA, and Hibernate etc.
c. OXM: OXM module provides an abstraction layer for Object/XML mapping APIs like JAXB, Castor and XMLBeans etc.
d. JMS: JMS module provides feature of message processing.
e. Transaction: Transaction module provides the facility of transaction management for classes like POJOs etc.

4. Web:

Web module consist of Web, Web-Servlet, Web-Struts, Web-Socket and Web-Portlet which provides the facility of creating web applications.

5. AOP:

AOP module provides aspect-oriented programming implementation which provides the facility to define method-interceptors.

6. Instrumentation:

Instrumentation module provides class instrumentation support and class loader implementations