本spring源码系列博客,参照spring源码深度解析
第一章 Spring整体架构
spring框架是一个分层架构,它包含一系列的功能要素,并大约被分为20个模块
这些模块被总结为一下几个部分
( 一 )Core Container
核心容器包含core,beans,context和Expression Language(表达式语言)模块
core和bean是框架的基础部分,提供ioc(控制反转)和依赖注入等等特性
- core模块主要包含了spring框架的基本核心工具,spring的其他组件都要使用到这一个包的类,core模块是其他组件的基本核心
- bean模块是所有应用都需要用到的,他包含访问配置文件,创建和管理bean以及inversion of
Control/Dependency Injection (IOC/DI)等等操作的相关类 - context 模块构键于core和bean模块之上,提供了一种类似于JNDI注册器的框架式对象访问方式,context继承了beans的特性,为spring核心提供了大量扩展
- expressionLanguage 提供了一个强大的表达式语言用于运行时的查询和操作对象
( 二 )Data Access/Integration
data access/integration 层包含有JDBC,ORM,OXM,JMS和Transaction模块,其中
-
jdbc 模块提供了一个JDBC的抽象层,它可以消除大量的jdbc的编码和解析数据库厂商特有的错误代码
-
orm 模块为流行的对象-关系映射api,提供了一个交互层
-
oxm 提供了一个对object/xml 映射失效的抽象层,其中Object/xml 映射实现包括JDO ,Hidernate 等等
-
JMS 制造消费消息
-
Transaction 模式支持编程和声明式的事务管理
( 三 )Web
web上下文模块建立在应用程序上下文的基础之上,为基于Web的应用程序提供了上下文,所以spring框架支持于Jacketa Struts 的集成,web模块还简化了处理部分请求以及请求参数绑定到域对象的工作 -
web,提供了基础的面向web的集成特性,例如多文件上传,使用servlet listeners 初始化ioc 容器以及一个面向web的应用上下文
-
web-servlet 模块,包含mvc 的实现,spring的mvc 框架使得模型范围内的代码webForm 之间可以清除的分离开来
-
web-struts,对sturus的支持
-
web-porlet 提供用于portlet环境和web-servlet模块的mvc 的实现
-
( 四 )AOP
-
AOP模块提供了一个符合AOP编程的面向切面的编程实现
-
Aspects 模块提供了对Aspects的集成
-
Instrumentation 提供了对于class instument的支持
-
tetst 测试模块
环境搭建
git 拉取代码
iead 编译 具体百度