spring 整体架构
1. core container(核心容器):包含有core,beans,context和expression language模块
core:此模块主要包含Spring框架基本的核心工具类。Spring的其他组件都要使用到这个包里的类,是其他组件的基本核心。
Beans:此模块是所有应用都要用到的,它包含访问配置文件,创建和管理Bean以及进行Ioc/DI操作相关的类。
Context:此模块构建于Core和Beans模块基础之上,提供了一种类似于JNDI式注册器的框架式的对象访问方法,Context继承了Beans的特性,为Spring核心提供了大量扩展添加了对国际化支持(如资源绑定),事件传播,资源加载和对Context的透明创建支持。ApplicationContext接口是Context模块的关键。
Expression Language:此模块提供了一个强大的表达式语言用于在运行时查询和操纵对象。它是JSP2.1规范中定义的unifed expression language的一个扩展。该语言支持设置/获取属性的值,属性的分配,方法的调用,访问数组上下文(accessing the context of array),容器和索引器,逻辑和算术运算符,命名变量以及从Spring的Ioc容器中根据名称检索对象,它也支持list投影,选择和一般的list聚合。
2. Data Access/Integration(数据访问与合并):包含有JDBC,ORM,OXM,JMS,和Transaction模块
JDBC:此模块包含了Spring对JDBC数据访问进行封装的所有类。
ORM:此模块为流行的对象-关系映射API,通过此模块实现与Hibernate,mybatis,JPA等持久化框架的集成。
OXM:此模块主要用于Object/xml,即对象与XML映射关系的处理。
JMS(Java Message Service):此模块主要包含制造与消费消息的相关功能。
Transaction:此模块为Spring提供的事务管理模块。
3. web(基于Web应用):此模块主要包含Web,Web-Servlet,Web-Struts,Web-Porlet
Web:此模块是Spring提供的面向Web基础的各种功能,如多文件上传,使用servlet listeners初始化IOC容器,以及Web上下文,另外还有中Web中的远程支持等
Web-Servlet:此模块包含Spring的Model-View-Controller(MVC)实现。
Web-Struts:此模块是Spring提供的对Struts框架的支持。
Web-Porlet:此模块提供了用于Porlet环境和Web-Servlet中MVC的实现。
4. AOP(面向切面编程):此模块包含Aspects,Instrumentation
Aspects:Spring提供的对AspectJ的支持。
Instrumentation:此模块提供了class instrumentation支持classloader实现,
5. Test:此模块支持使用JUnit,TestNG对Spring组件进行测试