前言

简单地总结一下 Spring 的各个模块, 如下图.

Spring 源码分析 | 概览

功能模块

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

总结

Spring 源码分析 | 概览

参见

相关文章: