Spring Modules
The Spring Framework contains a
lot of features, which are well-organized in about twenty modules. These
modules can be grouped together based on their primary features into
Ø Core
Container
Ø Data
Access/Integration
Ø Web
Ø AOP
(Aspect Oriented Programming)
Ø Instrumentation
Ø Test
Core Container Module
The Core Container consists of
the Core, Beans, Context and Expression modules.
The Core and Beans modules provide the most fundamental parts of the
framework and provides the IoC and Dependency Injection features.
The Context module build on top of the Core and Beans modules. The
Context module inherits its features from the Beans module and adds support for
internationalization (I18N), event-propagation, resource-loading, and the
transparent creation of contexts. The ApplicationContext interface is the focal
point of the Context module that provides these features.
The Expression Language module provides a powerful expression language
for querying and manipulating an object graph at runtime. The language supports
setting and getting of property values, property assignment, method invocation,
accessing the context of arrays, collections and indexers, logical and
arithmetic operators, named variables, and retrieval of objects by name from
Spring's IoC container.
Data Access/Integration Module
The Data Access/Integration layer
consists of the JDBC, ORM, OXM, JMS and Transaction modules.
The JDBC module provides a JDBC-abstraction layer that removes the need
to do tedious JDBC coding and parsing of database-vendor specific error codes.
The ORM module provides integration layers for popular
object-relational mapping APIs, including JPA, JDO, Hibernate, and iBatis.
The OXM module provides an abstraction layer for using a number of
Object/XML mapping implementations for JAXB, Castor, XMLBeans, JiBX and
XStream.
The JMS module provides Spring's support for the Java Messaging
Service. It contains features for both producing and consuming messages.
The Transaction module provides a way to do programmatic as well as declarative
transaction management, not only for classes implementing special interfaces,
but for all your POJOs.
Web Module
The Web layer consists of the
Web, Web-Servlet and Web-Portlet modules.
Spring's Web module provides basic web-oriented integration features, such
as multipart file-upload functionality, the initialization of the IoC container
using servlet listeners and a web-oriented application context.
The Web-Servlet module provides Spring's Model-View-Controller (MVC)
implementation for web-applications
The Web-Portlet module provides the MVC implementation to be used in a
portlet environment and mirrors what is provided in the Web-Servlet module.
AOP and Instrumentation Module
Spring's AOP module provides an aspect-oriented programming implementation
allowing you to define, method-interceptors and pointcuts to cleanly decouple
code implementing functionality that should logically be separated.
The Instrumentation module provides class instrumentation support and
classloader implementations to be used in certain application servers.
Test Module
The Test module contains the Test Framework that supports testing
Spring components using JUnit or TestNG.