1,Spring 体系结构简介
Spring 框架至今已集成了 20 多个模块, 这些模块分布在以下模块中:
核心容器(Core Container)
数据访问 / 集成 (Data Access/Integration) 层
web 层
AOP(Aspect Oriented Programming)模块
植入 (Instrumentation) 模块
消息传输(Messaging)
测试 (Test) 模块
Spring 体系结构如下图:
2, 核心容器
Spring 的核心容器是其他模块建立的基础, 有 Spring-core,Spring-beans,Spring-context,Spring-context-support 和 Spring-expression(String 表达式语言)等模块组成.
Spring-core 模块: 提供了框架的基本组成部分, 包括控制反转 (Inversion of Control,IoC) 和依赖注入 (Dependency Injection,DI) 功能.
Spring-beans 模块: 提供了 BeanFactory, 是工厂模式的一个经典实现, Spring 将管理对象称为 Bean.
Spring-context 模块: 建立在 Core 和 Beans 模块的基础之上, 提供一个框架式的对象访问方式, 是访问定义和配置的任何对象的媒介. ApplicationContext 接口是 Context 模块的焦点.
Spring-context-support 模块: 支持整合第三方库到 Spring 应用程序上下文, 特别是用于高速缓存 (EhCache,JCache) 和任务调度 (CommonJ,Quartz) 的支持.
Spring-expression 模块: 提供了强大的表达式语言去支持运行时查询和操作对象图. 这是对 JSP2.1 规范中规定的统一表达式语言 (Unified EL) 的扩展. 该语言支持设置和获取属性值, 属性分配, 方法调用, 访问数组, 集合和索引器的内容, 逻辑和算术运算, 变量命名以及从 Spring 的 IoC 容器中以名称检索对象. 它还支持列表投影, 选择以及常用的列表聚合.
3,AOP 和 Instrumentation
Spring-aop 模块: 提供了一个符合 AOP 要求的面向切面的编程实现, 允许定义方法拦截器和切入点, 将代码按照功能进行分离, 以便干净地解耦.
Spring-aspects 模块: 提供了与 AspectJ 的集成功能, AspectJ 是一个功能强大且成熟的 AOP 框架.
Spring-instrument 模块: 提供了类植入 (Instrumentation) 支持和类加载器的实现, 可以在特定的应用服务器中使用.
4, 消息
Spring4.0 以后新增了消息 (Spring-messaging) 模块, 该模块提供了对消息传递体系结构和协议的支持.
5, 数据访问 / 集成
数据访问 / 集成层由 JDBC,ORM,OXM,JMS 和事务模块组成.
Spring-jdbc 模块: 提供了一个 JDBC 的抽象层, 消除了烦琐的 JDBC 编码和数据库厂商特有的错误代码解析.
Spring-ORM 模块: 为流行的对象关系映射(Object-Relational Mapping)API 提供集成层, 包括 JPA 和 Hibernate. 使用 Spring-ORM 模块可以将这些 O/R 映射框架与 Spring 提供的所有其他功能结合使用, 例如声明式事务管理功能.
Spring-oxm 模块: 提供了一个支持对象 / xml 映射的抽象层实现, 例如 JAXB,Castor,JiBX 和 XStream.
Spring-jms 模块(Java Messaging Service): 指 Java 消息传递服务, 包含用于生产和使用消息的功能. 自 Spring4.1 以后, 提供了与 Spring-messaging 模块的集成.
Spring-tx 模块 (事务模块): 支持用于实现特殊接口和所有 POJO(普通 Java 对象) 类的编程和声明式事务管理.
6,Web
Web 层由 Spring-Web,Spring-webmvc,Spring-websocket 和 Portlet 模块组成.
Spring-Web 模块: 提供了基本的 Web 开发集成功能, 例如多文件上传功能, 使用 Servlet 监听器初始化一个 IoC 容器以及 Web 应用上下文.
Spring-webmvc 模块: 也称为 Web-Servlet 模块, 包含用于 Web 应用程序的 Spring MVC 和 REST Web Services 实现. Spring MVC 框架提供了领域模型代码和 Web 表单之间的清晰分离, 并与 Spring Framework 的所有其他功能集成.
Spring-websocket 模块: Spring4.0 以后新增的模块, 它提供了 WebSocket 和 SocketJS 的实现.
Portlet 模块: 类似于 Servlet 模块的功能, 提供了 Portlet 环境下的 MVC 实现.
7, 测试
Spring-test 模块支持使用 JUnit 或 TestNG 对 Spring 组件进行单元测试和集成测试.
来源: http://www.bubuko.com/infodetail-2992081.html