第一章 Spring的整体架构
Spring是2003年流行起来的一个开源框架,Spring 的作用降低应用的复杂性,它使用JavaBean来替代之前的EJB。从简单性,可测试性和松耦合的角度来说,任何Java应用都可以从Spring中受益。
1.1Spring 整体架构
Spring 是一个分层架构,有20多个模块,这些模块被分层了几个部分,即
(1)core container 核心容器
(2)Data Access/Integeration
(3)Web
(4)AOP
图1-1 Spring 架构图(1)core container 核心容器
包含 Beans 、Core 、Context、 El
Core:包含Spring 的核心工具类,Spring的其他组件会用到这个包里的工具。
Beans:包含配置文件,创建和管理Bean,以及和IOC和DI操作相关的所有的类。
Contex:t模块构建在Core和Bean模块基础之上,提供了对象访问方法,Context继承了Beans的特性,为Spring提供了大量的扩展。
EL :提供了表达式语言用于在运行时查询和操作对象
(2)Data Access/Integeration
Data Access/Integeration包含JDBC 、ORM 、OXM 、JMS 和 Transaction
JDBC :提供了一个JDBC抽象层,包含Spring 对JDBC数据访问进行封装的所有类。
ORM:为流行的对象-关系映射API 如Hibernate 和MyBaties 提供了一个交互层
OXM: 提供了一个对Object/XML 映射实现的抽象层
JMS: 包含一些生成消费信信息的特性 (rabbit mq, active mq)
Transaction:事务管理(数据库)
(3)Web
Web模块建立应用程序上下文模块(context)之上,为Web应用提供了上下文,Web层包含了Web、 Web-servlet 、WebStruts、Web-Porlet
Web模块:提供了基础的面向web的集成特性,例如。多文件上传,使用servlet listenners初始化IOC容器和面向web的应用上下文
这里说的其实就是在web.xml 里的一些配置,如图1-2
图1-2 web.xmlWeb-servlet:我们常说的spring mvc 就属于Web-servlet,spring mvc 框架模型范围内的代码和web forms 清楚的分离。spring mvc 和spring 其他特性结合起来(比如AOP,Data )
(4)AOP
提供了一个符合AOP联盟标准的面向切面编程的实现(aop方面的应用有日志和事物管理)
(5)Test
支持使用Junit和Test对Spring组件进行测试
网友评论