核心容器Core Container
Core Container由:Core,Beans,Context和Expression Language模块组成。
Core和beans模块提供了框架的基础功能部分,包括Ioc和Dependency Injection的特性。
BeanFactory是一个工厂模式的应用,它消除了程序化的singletons并且允许你封装配置和从实际程序中确定依赖关系。
Context模型是建立在Core and Beans模型上:通过它可以访问被框架管理的对象,这类似于JNDI注册。Context模块从beans模块中集成了不少的特性,并且添加了对国家化的支持(例如对资源打包的时候)。事件循环,资源装载,和contexts的生成及转换,例如一个servlet容器。Context模块同样支持Java EE的特性,例如EJB,JMX和基础的远程访问。ApplicationContext接口是Context模块的本地点。
表达式语言提供了一个强大的表达式语言来查询和处理一个对象,在运行的时候。它是统一表达式(unified expression language)的扩展,该规范分属JSP 2.1规范。该语言支持设置和访问属性数值。方法的调用,访问上下文数组,集合数组,索引数组,命名变量,通过名字获取对象从Spring IoC容器中。
数据访问与整合
数据访问与整合层包括:JDBC,ORM,OXM,JMS,和事务模块。
JDBC模块提供了一个JDBC的抽象层,消除了对JDBC个性编码的需求。而且统一了数据库访问的错误代码。
ORM模块提供了处理对象关系映射的APIs来进行整合,败落JPA,JDO,Hibernate和iBatis.
使用ORM包,你可以使用这些O/R-mapping框架,同时也可以使用Spring的其他功能。
例如相对简单的声明性事务管理功能。
而OXM模块提供了Object/XML映射的抽象层,为JAXB,Castor,XMLBeans,JiBX和XStream等。
JMS模块包含了生产和消费消息的功能。
事务模块提供了程序化和声明性的事务管理。这个功能可以为所有类和POJOs所用。
WEB
Web层有Web,Web-Servlet,Web-Struts和Web-Portlet模块组成。
Spring的Web模块提供了基础的面向web的整合特性,例如多部分文件上传功能,使用servlet监听来初始化IoC容器,面向WEB的应用程序上下文环境。它同样包含Spring的远程访问相关的Web部分的内容。
Web-Servlet模块包含了Spring的MVC应用。Spring的MVC框架提供了一个条理的在代码模型和WEB表单及其他Spring Framework整合方面的分离。
Web-Struts模块包含了整合传统struts web层的类,在一个Spring应用中。但是值得注意的是该部分已经在Spring3.0中已经不推荐使用了,可以考虑整合你的应用到Struts2.0.或是整合到一个Spring MVC解决方案。或是跟Spring进行整合。
Web-Portlet模块提供了一个MVC的应用可以使用在一个portlet环境下,并且可以映射实现一个Web-Servlet模块的功能。
AOP和架构
TEST
Test模块支持测试Spring组件,通过使用JUnit和TestNG.提供了同步装载Spring ApplicationContexts和缓冲这些上下文环境。它也提供了Mock对象,这些对象你可以用来独立测试你的代码。