Spring Framework is composed of many modules which includes like context,core, Instrumentation , AOP,Aspects, JDBC, ORM, OXM, JMS, Transaction, Web, Servlet, Struts etc.
These module are categorised into following layer: Test, Core Container, AOP, Aspects, Instrumentation, Data Access / Integration, Web (MVC / Remoting).
The image given below shows the Spring architecture and components grouping:
Test layer provides support of testing with JUnit and TestNG.
The Spring Core container contains core, beans, context and expression language (EL) modules.
These modules provide IOC(Inversion of control) and DI( Dependency Injection )features.
Context supports internationalization (I18N), EJB, JMS, Basic Remoting.
It is an extension to the EL defined in JSP, provides support to set and get property values, method invocation, accessing collections and indexers, named variables, logical and arithmetic operators, retrieval of objects by name etc.
AOP refers to aspect oriented programming where we can use Advices, Pointcuts ,Joinpoint etc. to decouple the code and modularity of a code.
The aspects module provides support to integration with AspectJ.
Instrumentation module provides support to class instrumentation and classloader implementations.
This group comprises of JDBC, ORM like hibernate, OXM, JMS and Transaction modules. These modules basically provide support to interact with the database.
This group comprises of Web, Web-Servlet, Web-Struts and Web-Portlet. These modules provide support to create web application.