Spring 3.2.5 概览

本贴最后更新于 3785 天前,其中的信息可能已经时移世改

Spring Modules

1. 核心容器(Core Container)

核心容器包含Core,Beans,ContextExpression Language四个部分.

CoreBean模块是框架中最基础的部分,提供控制反转(IoC)和依赖注入(Dependency Injection)。其中的BeanFactory实现了工厂模式,避免手动实现工厂单例,同时可以使对象之间的依赖关系与真正的程序逻辑解耦。

Context模块基于Core模块和Beans模块,通过它可以以一种“框架风格”的方式来访问对象,类似于JNDI的注册机制。Context继承了Beans的特性,此外它还通过使用servlet容器或者其他方式添加了对国际化(例如使用resource bundles)、事件传播、资源加载和透明创建上下文的支持。Context模块也提供了对EJB、JMX和基本远程等Java EE特性的支持。ApplicationContext接口是Context模块的核心。

Expression Language模块为在运行时查询、操作对象图提供了一种强大的表达式语言,它是JSP 2.1规范中的通用表达式语言的一个扩展。它支持设置、获取属性值,属性赋值,方法调用,访问序列、集合的上下文和索引,逻辑、算术运算符,命名变量,从Spring的IoC容器中按名字遍历对象。它也支持列表的映射、选择以及表聚合。

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

数据访问/集成层包括JDBCORMOXMJMSTransaction模块。

JDBC模块提供了一个JDBC抽象层,免除了枯燥乏味的JDBC编码和特定数据库的错误分析工作。

ORM模块为常用的对象-关系映射框架提供集成,如JPA、JDO、Hibernate、iBatis。通过ORM你可以将这些对象-关系映射框架和Spring的其他特性结合在一起使用,比如之前提到的声明式事务管理功能。

OXM模块提供一个支持JAXB、Castor、XMLBean、JiBx、XStream等对象-XML映射的实现。

JMS(Java消息服务)模块包含了生成、处理消息时的一些特性。

Transaction模块支持对实现了特殊接口的类和所有的POJOs进行编程式和声明式的事务管理。

3. Web

Web层包括WebWeb-ServletWeb-StrutsWeb-Portlet四个模块。

Spring的Web模块提供了基本的面向Web的集成特性,比如分段文件上传功能、使用servlet监听器和面向web的应用上下文(application context)进行IoC容器的初始化。它也包含Spring的远程支持中与web相关的部分。

Web-Servlet模块包含Spring为web应用提供的模型-视图-控制器(MVC)实现。Spring的MVC框架将领域模型代码和web表单明确地分离开来,并与Spring框架的其他特性集成到一起。

Web-Struts模块包含将经典的Struts web层集成到一个Spring应用里的一些支持类。在Spring 3.0中这个支持已经被建议不要使用。可以考虑将应用移植到Struts 2.0和它的Spring集成或者换用Spring MVC。

Web-Portlet模块提供portlet环境下的MVC实现并仿效了Web-Servlet模块的功能。

4. 面向切面编程和仪表化(AOP and Instrumentation)

Spring的AOP模块提供了符合 AOP Alliance规范的面向方面的编程(aspect-oriented programming)实现,让你可以定义方法拦截器(method-interceptors)和切点(pointcuts)来清晰的解耦不同功能的代码。同时,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中,这有点象.Net的attribute的概念。

独立的Aspects模块提供与AspectJ的集成。

Instrumentation模块提供类的仪表化支持以及特定应用服务器中类加载器的实现。

5. 测试(Test)

Test模块支持使用Junit或者TestNG来测试Spring的组件。它提供一致的Spring ApplicationContexts的加载、缓存过程。它同时也提供了用于独立测试代码的mock对象。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...