Spring 源码深度解析笔记 - Spring 模块划分
2016-09-24 15:58
274 查看
####1. 核心容器
Core 模块:主要包括Spring 框架基本的核心工具类,其他模块都要基于该模块。
Beans 模块:包含访问配置文件、创建和管理bean以及进行IoC/DI操作相关的类。
Context 模块:构建于Core 和Beans 模块之上,提供了一种类似JNDI注册器的框架式的对象访问方法。Context 模块继承了Beans 模块的特性,为Spring 核心提供了大量扩展,添加了对 国际化、事件传播、资源加载和对Context 的透明创建的支持。同时也支持J2EE的一些特性,比如EJB、JMX和基础的远程处理。ApplicationContext接口是Context模块的关键。
Expression Language 模块:提供了一个强大的表达式语言用于在运行时查询和操纵对象。该语言支持设置/获取属性的值,属性的分配,方法的调用,访问数组上下文、容器和索引器、逻辑和算术运算符、命名变量以及从Spring 的IOC容器中根据名称检索对象。也支持list投影、选择和一般的list聚合。
ORM模块:对象-关系映射API,如JPA、JDO、Hibernate、MyBatis等。
OXM模块:Object/XML映射抽象层,具体实现包括JAXB、Castor、XStream等。
JMS模块:消息模块。
Transaction模块:支持编程和声明性的事务管理。
Web-Servlet模块:包含Spring的MVC实现。
Web-Struts模块:提供了对Struts的支持。
Web-Porlet模块:提供了用于Porlet环境和Web-Servlet模块的MVC的实现。
Instrumentation模块:提供了class instrumentation支持和classloader实现,使得可以在特定的应用服务器上使用。
Core 模块:主要包括Spring 框架基本的核心工具类,其他模块都要基于该模块。
Beans 模块:包含访问配置文件、创建和管理bean以及进行IoC/DI操作相关的类。
Context 模块:构建于Core 和Beans 模块之上,提供了一种类似JNDI注册器的框架式的对象访问方法。Context 模块继承了Beans 模块的特性,为Spring 核心提供了大量扩展,添加了对 国际化、事件传播、资源加载和对Context 的透明创建的支持。同时也支持J2EE的一些特性,比如EJB、JMX和基础的远程处理。ApplicationContext接口是Context模块的关键。
Expression Language 模块:提供了一个强大的表达式语言用于在运行时查询和操纵对象。该语言支持设置/获取属性的值,属性的分配,方法的调用,访问数组上下文、容器和索引器、逻辑和算术运算符、命名变量以及从Spring 的IOC容器中根据名称检索对象。也支持list投影、选择和一般的list聚合。
2. 数据访问与集成
JDBC模块:提供了一个JDBC抽象层,它可以消除冗长的JDBC编码和解析数据库厂商特有的错误代码。这个模块包含了Spring对JDBC数据访问进行封装的所有类。ORM模块:对象-关系映射API,如JPA、JDO、Hibernate、MyBatis等。
OXM模块:Object/XML映射抽象层,具体实现包括JAXB、Castor、XStream等。
JMS模块:消息模块。
Transaction模块:支持编程和声明性的事务管理。
3. Web
Web模块:提供了基础的面向Web的集成特性。例如,多文件上传,使用servlet listeners初始化IoC容器以及一个面向Web的应用上下文。Web-Servlet模块:包含Spring的MVC实现。
Web-Struts模块:提供了对Struts的支持。
Web-Porlet模块:提供了用于Porlet环境和Web-Servlet模块的MVC的实现。
4. AOP
Aspects模块:提供了对AspectJ的支持。Instrumentation模块:提供了class instrumentation支持和classloader实现,使得可以在特定的应用服务器上使用。
5. Test
Test模块支持使用JUnit和TestNG对Spring组件进行测试。相关文章推荐
- Spring源码解析笔记5——循环依赖的解决
- Spring源码解析笔记3——自定义标签的解析
- Spring源码解析笔记7——bean的初始化
- jQuery源码解析(架构与依赖模块)笔记二--核心模块
- Spring源码解析笔记4——bean的加载
- jQuery源码解析(依赖与架构模块)笔记三------回调函数
- 学习笔记:springmvc4.3源码学习:spring解析配置文件过程
- Spring源码解析笔记9——容器的功能扩展BeanFactory的后处理(BeanFactoryPostProcessor)
- Spring源码解析笔记8——容器的功能扩展ApplicationContext
- Spring源码解析笔记6——创建bean
- Spring源码解析笔记2——默认标签的解析
- jQuery源码解析(架构与依赖模块)笔记一
- 源码深度解析spring中防止乱码的过滤器
- spring源码学习笔记-初始化(四)-PostProcessor
- nginx 源码学习笔记(二)——nginx精粹-模块
- 【第二章:源码解析】Spring的BeanFactory的接口注解
- Spring的ApplicationContext实例化源码解析
- spring源码学习笔记-初始化(五)-MessageSource/事件监听器
- Verilog初学笔记--模块划分的好处
- C语言深度解析笔记