- Core Container 核心层
Core Container核心容器,包含Core,Beans,Context,Expression Language模块 Core和Beans模块是Spring框架的基础部分,提供IOC(控制反转)和依赖注入特性
Core模块: 主要包含Spring框架基本的核心工具类,是其他组件的基础 Spring的其他组件都要使用到Core模块中的类
Beans模块: 包含访问配置文件,创建和管理bean以及IOC/ID操作相关的所有类 Spring所有模块都需要依赖与Beans模块,才能正常使用
Context模块: 构建于Core和Beans模块之上,提供了类似于JNDI注册器的框架式对象访问方法 Context模块继承了Beans模块特性,并对Spring核心提供了大量扩展 添加了对国际化,事件传播,资源加载和对Context透明创建的支持 同时支持J2EE特性,如EJB,JMX和基础远程处理 ApplicationContext接口是Context模块的关键
Expression Language模块: 提供了一个强大的表达式语言,可用于在运行时查询和操作对象 该语言支持设置/获取属性值,属性的分配,方法的调用,访问数组上下文、容器和索引器、 逻辑和算术运算符、命名变量以及从Spring的IOC容器中根据名称检索对象 还支持List投影,选择和一般的list聚合 |
- Data Access/Integration 数据访问层,交互层
Data Access/Integration层包含JDBC,ORM,OXM,JMS和Transaction模块
JDBC模块: 提供了一个JDBC抽象层,消除JDBC冗余的编码和解析数据库厂商特有的错误代码 JDBC模块包含了Spring对JDBC数据访问进行封装的所有类
ORM模块: ORM模块为对象-关系映射API提供了一个交互层 可以混合使用所有Spring提供的特性进行O/R映射,如简单声明性事务管理 Spring框架引入了若干ORM框架,如:JPA,JDO,Hibernate,iBatis等 这些全部遵从与Spring的通用事务和DAO异常层次结构
OXM模块: OXM模块提供了针对Object/XML映射实现的抽象层 具体实现包括:JAXB,Castor,XMLBeans,JiBX和XStream
JMS模块 JMS模块:java Message Service 主要是包含制造和消费消息的特性
Transaction模块: 支持编程和声明性事务管理 事务类必须实现特定接口,适用于所有POJO |
- Web
Web上下文模块建立在应用上下文模块基础之上,为基于Web的应用程序提供上下文 Web层包含了Web,Web-Servlet,Web-Struts和Web-Porlet模块
Web模块: 提供了基础的面向Web的集成特性 如:多文件上传,使用servlet listeners初始化IOC容器 以及一个面向Web的应用上下文,还包含Spring远程支持中Web相关部分
Web-Servlet模块-web.servlet.jar: 该模块包含Spring的model-view-controller(MVC)实现 Spring MVC框架模型范围内的代码和web forms之间能清晰地实现分离, 并与Spring框架其他的特性集成在一起
Web-Struts模块: 提供了对Struts的支持 使得类在Spring应用中能与一个典型的Struts Web层集成在一起 注意:在Spring 3.0中对struts的支持为deprecated
Web-Porlet模块: 提供了用于Portlet环境和Web-Servlet模块的MVC实现 |
- AOP
Spring集成了AspectJ作为AOP的特定实现, 还在JVM动态代理/CGLIB的基础上实现了AOP框架 AOP模块提供了一个符合AOP联盟标准的面向切面编程的实现 可以定义如方法拦截器和切点,从而将逻辑代码分离,降低耦合性
通过配置管理特性,Spring AOP模块将面向切面的编程功能集成到Spring框架中 使得Spring框架管理的任何对象支持AOP,将各种行为合并到代码中
Spring AOP模块:为基于Spring的对象提供事务管理服务 Aspects模块:提供了对AspectJ的集成支持 Instrumentation模块: 提供了class instrumentation支持和classloader实现 使得可以在特定的应用服务器上使用 |
- Test
Test模块支持使用JUnit和TestNG对Spring组件进行测试 |