今天开始spring源码的学习,说实话我自己都不知道我可以坚持多久,看吧!!!本笔记的依赖书籍是Spring源码深度解析(郝佳著)第二版,如果想自己学习的话下载地址为 百度云链接
本笔记仅供参考!!!
1.Spring整体架构
1、Core Container模块
Beans: 此模块所有的类都要用到,包含了访问配置文件,创建和管理bean以及进行IOC和DI操作相关的所有类。
Core: 此模块包含了Spring框架的核心工具类,Spring其他组件都要用到这里面的类,Core模块是其他组件的核心。
Context: Context模块建立在Core和Beans模块之上,同时Context继承了Beans的特性,为Spring的核心提供了大量扩展,添加了对国际化,事件传播,资源加载和对Conrext透明创建的功能。ApplicationContext接口是Context模块的关键。
Expression Language(SpEL): 此模块提供了强大的表达式语言,用于在运行时查询和操作对象。
2、Data Access/Intergration模块
JDBC: 此模块主要用于消除冗长的JDBC编码,同时此模块也包含了Spring对JDBC数据访问进行封装的所有类。
ORM: 此模块为为流行的对象-关系映射API,如JPA,Hibernate等,提供了一个交互层。利用ORM封装包,可以混合使用所有Spring提供的特性进行O/R映射。
OXM: 此模块提供了一个Object/Xml映射实现的抽象层。
JMS : 此模块主要包含了一些制造和消费消息的特性。
3、Web模块
WEB: 此模块提供了面向WEB的集成特性,例如多文件上传,使用servlet listener 初始化IOC容器以及一个web的应用上下文,同时还包含了Spring远程支持中的WEB的相关部分。
WebServlet:相关的jar文件为web.servlet.jar。该模块包含Spring的MVC的相关实现。Spring的框架能使模型范围内的代码和web forms之间能够清楚的分离开来,并与Spring框架的其他特性集成在一起。
WebStruts:此模块提供了对与Structs的支持,注意,该支持在Spring3.0中已被弃用。
WebPorlet: 提供了对于Protlet环境和Web-Servlet模块的MVC实现。
4、AOP
Aspects: 此模块提供了对于AspectJ的集成支持。
Instrumentation: 此模块提供了对class instrumentation支持和classloader的实现,使得可以在特定的应用服务器上使用。
5、TEST
TEST模块支持JUNIT和TestNG对于Spring组件进行测试。