Spring是一种轻量级的控制反转和面向切面的容器框架。
  Spring 3.0框架是一个分层架构,由20多个模块组成,这些模块被分成了5个部分,分别为数据访问/集成、Web、AOP、核心容器和测试5个部分。
这里写图片描述

1、核心容器(Core Container)

Core Container由以下Core和Beans、Context、Expression Language模块组成。
(1)Core和beans模块:这两个模块提供了框架的基础功能部分,包括IoC和依赖注入的特征。BeanFactory是一个工厂模式的应用,它消除了程序化的单例模式,并且允许封装配置和从实际程序中确定依赖关系。
(2)Context模型:该模块建立在Core和Beans模型上:通过它可以访问被框架管理的对象,这类似于JNDI注册。Context模块从Beans模块中集成了不少的特征,并且添加了对国际化的支持。Context模块同样支持JavaEE的特征,例如EJB和基础远程访问。
(3)Expression Language(表达式语言):该模块提供了一个强大的表达式语言来查询和处理一个对象,在运行时,它是统一表达式的扩展,该语言支持设置和访问属性数值、方法的调用、访问上下文数组、集合数组、索引数组、命名变量,通过名字可以从Spring IoC容器中获取对象。

2、数据访问/集成(Data Access/Integration)

数据访问/集成包括JDBC、ORM、OXM、JMS和事务模块。
(1)JDBC:该模块提供了一个JDBC的抽象层,消除了对JDBC个性编码的需求。而且统一了数据库访问的错误代码。
(2)ORM:该模块提供了处理对象关系映射的API来进行集成,使用ORM包,可以使用这些O/R-mapping框架,同时也可以使用Spring的其他功能,例如相对简单的声明性事务管理功能。
(3)OXM:该模块提供了Object/XML映射的抽象层,为JAXB、Castor、XMLBeans、JiBX和XStream等。
(4)JMS:该模块包含了生产和消费信息的功能。
(5)Transactions:事务模块提供了程序化和声明性的事务管理,这个功能可以为所有类和POJO所用。

3、Web

Web层由Web、Servlet、Portlet和Struts模块组成。
(1)Web:该模块提供了基础的面向Web的整合特征,例如多文件上传功能。使用Servlet监听来初始化IoC容器和面向Web的应用程序上下文环境。它同样包含Spring的远程访问相关的Web部分的内容。
(2)Servlet:该模块包含了Spring的MVC应用。Spring的MVC框架提供了一个条理的在代码模型和Web表单及其他Spring框架整合方面的分离。
(3)Portlet:该模块提供了一个MVC的应用,该应用可以使用在一个Portlet环境下,并且可以映射实现一个Servlet模块的功能。
(4)Struts:该模块包含了整合传统Struts Web层的类。但是值得注意的是,该部分已经在Spring 3.0中不推荐使用了,可以考虑整合应用程序到Struts 2 或是整合到一个Spring MVC解决方案,或是和Spring框架进行整合。

4、AOP和架构

Spring在它的AOP模块中提供了对面向切面编程的丰富支持。

5、Test

Test模块支持测试Spring的组件,通过使用JUnit和TestNG提供了同步装载SpringAPPlicationContexts和缓冲这些上下文环境。它也提供了Mock对象,这些对象可以用来独立测试代码。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐