文章目录- 1、核心容器(Core Container)
- 2、数据访问/集成(Data Access/Integration)
- 3、Web
- 4、AOP和架构
- 5、Test
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对象,这些对象可以用来独立测试代码。