前言
简单地总结一下 Spring 的各个模块, 如下图.
功能模块
Core container
spring-core:Spring中的核心工具类包。
spring-beans:Spring中定义bean的组件。
spring-context:Spring的运行容器。
spring-context-support:Spring容器的扩展支持。
spring-expression:Spring的表达式语言支持。
Core
- 核心工具类
Beans
- 访问配置文件
- 创建/ 管理Bean
- IoC/ DI操作相关
Context
- 类似JNDI组成器访问对象方法
Expression Language
- 运行时查询/ 操作对象
- JSP 2.1 规范的扩展
JSP 2.1 : 设置/ 获取属性值, 属性的分配, 方法的调用, 访问数组上下文,容器和索引器,逻辑和算术运算符,命名变量, IoC 容器中根据名称检索对象.
Data Access/ Integration
spring-jdbc:提供对jdbc连接的封装功能。
spring-tx:提供对事务的支持。
spring-orm:提供对象-关系映射支持。
spring-oxm:提供对象-XML映射支持。
spring-jms:提供消息队列的支持。
JDBC
- 数据库抽象层, 消除冗余 JDBC 编码和解析数据库的错误代码
ORM
- 对象关系映射, 提供了一个交互层
OXM
- 对象XML映射, 提供了一个 O/X关系映射
JMS
- 生产/ 消费消息的特性
Transaction
- 事务管理
Web (MVC/ Remoting)
spring-web:提供web的基础功能。
spring-webmvc:提供springmvc的功能。
spring-websocket:提供web socket支持。
spring-webmvc-portlet:提供Portlet环境的支持。
Web
- 简化了多部分请求, 将请求参数绑定到域对象的工作
Servlet
- Spring MVC 实现
Struts
- 支持Struts
Portlet
- 提供 MVC 实现
AOP
spring-aop:基于代理的AOP支持。
spring-aspects:集成Aspects的AOP支持。
AOP
- 面向切面编程实现
Aspects
- Aspectj集成
Instrumentation
- class instrumentation 支持
- classloader 实现
Test
spring-test:提供对测试功能的支持。
- 支持JUnit
- 支持TestNG