Spring框架由20个功能模块构成,这些模块被分组到Core Container、 Data Access/Integration、 Web 、AOP、 Instrumentation、 Messaging、 和Test中。
组成Spring框架的每个模块或者组件都可以单独存在,或者与其他一个或多个模块联合实现。下面对体系结构中的模块做简单介绍。
(1)Core Container,核心容器提供 了Spring的基本功能,是其他模块建立的基础,它主要由Beans模块、Core模块、Context模块和SpringEL模块组成。
Beans模块:提供了BeanFactory,是工程实现方式的经典,Spring将管理对象称为Bean.
Core核心模块:提供了Spring框架的基本组成部分,包括IOC和DI功能。
Context上下文模块:构建于核心模块之上,它是访问定义配置的任何对象的媒介。扩展了BeanFactory的功能,其中ApplicationContext是Context模块的核心接口。
SpringEL模块:是Spring3.0后新增的模块,提供了Spring Expression Language支持,是运行时查询和操作对象的强大的表达式语言。
(2)Data Access/Integration,数据访问/集成层包括JDBC、 ORM、 OXM 、JSM和Transactions模块。
JDBC模块:提供了一个JDBC的抽象层,大幅度地减少了在开发中对数据库的操作的代码。
ORM模块:提供了与多个第三方持久层框架的良好整合。
OXM模块:提供一个支持对象/XML映射的抽象层实现,如JAXB 、Castor、 XMLBeans 、JiBX和 XStream。
JMS模块:JAVA消息传递服务,包含使用和产生消息的特性,自Spring4.1版本后,提供了与Spring-messaging模块的集成。
Transactions模块:支持对实现特殊接口以及所有POJO类的编程和声明式的事务管理。
(3)Web,Web层包括WebSocket 、Servlet 、Web、 Portlet模块。
Web模块:提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet监听器进行IOC容器初始化以及Web应用上下文。
Servlet模块:也称作Spring-webmvc模块,包含Spring的模型-视图-控制器(MVC)和REST Web Services实现的Web应用程序。
WebSocket模块:Spring4.0以后新增功能,提供了WebSocket和SockJS的实现,以及对STOMP的支持。
Portlet模块:类似Servlet模块的功能,提供了Portlet环境下的MVC实现。
(4)其他模块.还有AOP 、Aspect、 Instrumentation 、Messaging 以及Test模块。
AOP模块:提供了面向方面编程的支持,允许定义方法拦截器和切入点,将代码按照功能进行分离,以降低耦合度。
Aspect模块:提供了与AspectJ 的集成功能,AspectJ是一个功能强大且成熟的面向方面编程的框架。
Instrumentation框架:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。
Messaging模块:Spring4.0以后新增加的模块,提供了对消息传递体系结构和协议的支持。
Test模块:提供了 对单元测试和集成测试的支持。