spring源码学习笔记(一)

1.1spring的整体架构
spring源码学习笔记(一)_第1张图片
它是一个分层架构,并被分为大约20个模块。
这些模块可以总结为以下几个部分
(1)Core Container
CoreContainer包含有Core,Beans,Context和ExpressionLanguage模块。Core和Beans模块是框架的基础部分,提供IOC和DI。此处的基础指的是BeanFactory, 它提供对工厂模式的经典实现来消除对程序单例模式的需求,并真正允许你从程序逻辑中分离出依赖关系和配置。

-Core模块包含spring框架的基本核心工具类,是其他组件的基本核心。
-Bean模块包含访问配置文件,创建和管理bean以及IOCID操作相关的所有的类。
-Context模块构建于core和bean之上,提供了对象的访问方法以及大量对spring核心的扩展,还添加了对国际化,事件传播,资源加载等支持。ApplicationContext接口是Context模块的关键。
-Expression Language模块提供了强大的表达式语言用于在运行时查询和操作对象,支持设置/获取属性的值,方法的调用,访问数组上下文,容器和索引器等。

(2)Data Access/Integration
该层包含JDBC,ORM,OXM,JMS和Transaction模块;其中:

-JDBC模块包含了spring对JDBC数据访问进行封装的所有类。
-ORM模块为流行的对象关系映射API(hibernate,ibatis,jpa等)提供了一个交互层,利用ORM可以混合使用所有spring提供的特性进行OR映射。
-OXM模块提供了一个对Object/XMl映射实现的抽象层
-JMS模块主要包含了一些制造和消费消息的特性
-Transaction模块支持编程和声明性的事务管理

(3)Web
Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。

-Web模块:提供了基础的面向Web的集成特性,比如多文件上传,使用servlet listeners初始化IOC容器以及一个面向web的应用上下文
-Web-Servlet模块包含spring的model-view-controller实现。
-Web-Struts模块提供了对Struts的支持
-Web-Porlet模块提供了用于Portlet环境和Web-Servlet模块的MVC实现

(4)AOP
该模块提供了一个符合AOP联盟标准的面向切面编程的实现,它让你可以定义例如方法拦截器和切点。
(5)Test
Test模块支持使用JUnit和TestNG对Spring组件进行测试

(文章笔记记录于《Spring源码深度解析》)

你可能感兴趣的:(spring源码学习笔记(一))