Spring英文参考文档翻译

  • Post author:
  • Post category:其他










Spring


框架参考文档(


3.2.4

















第一部分



Spring



框架概述








Spring


框架是一个轻量级的解决方案以及潜在的一站式企业级应用。但是


Spring


又是模块化的,各个模块又是相互解耦的。可以在


Struts


的基础上使用


IOC


容器,也可以同时使用集成的


Hibernate





jdbc





Spring


框架支持声明式事务,还可以通过


RMI


或者


Web


服务远程访问逻辑层,以及各种类型的持久化数据的方式。它提供了功能强大的


MVC


框架,将


AOP


非侵入的植入到应用程序中。


Spring


被设计成非侵入式的,逻辑代码与


Spring


框架本身没有关系。在集成层(比如数据访问层)会依赖于第三方数据访问技术或者


Spring


架包。然而


Spring


比较容易将依赖包和代码库解耦。








这份文档是描述



Spring



功能的一个参考文档。关于本文档,如果你有任何意见请及时的通过邮件或者论坛的方式联系我们。






1. Spring


框架的介绍








Spring


框架是一个全面支持


java


应用开发的平台,开发者只需关注自己的应用,从而减轻开发者的负担。









Spring


可以通过普通的


POJO


对象来构建应用程序,从而实现非侵入式的企业级应用服务。非侵入式可以应用于


J2SE


以及


J2EE











下面列举几个作为应用程序员怎样才能充分利用





Spring


平台的优点:








. java


方法在数据库事务中执行时,最好不要涉及到事务





API








.


本地



java



方法进行远程调用,最好不要调用远程





API








.


本地





java


方法进行管理操作,最好不要调用


JMXAPI








.


本地





java


方法进行消息处理,最好不要调用


JMSAPI













1.1




依赖注入和控制反转







背景










什么才是控制反转?









2004


年,马丁

.

福勒在他的个人网站上关于


IOC


提出了这个问题。福勒建议将控制反转改为依赖注入,这样更加简洁明了。关于


IOC





DI


可以参考他的博文







http://martinfowler.com/articles/injection.html





















Java


应用程序,无论是小的


applets





还是多层的企业级程序,都是松散耦合的代名词,通常由相互关联的对象形成符合要求的应用程序。所以在应用程序中对象是彼此依赖的。









虽然



JAVA



平台为应用程序的开发提供了丰富的功能,但是任然缺乏一键构造整体模块的方式,往往将需要开发者或者架构师自己来构建。诚然,开发者可以通过设计模式(例如工厂、抽象工厂、装饰器等)构造不同的类或者实例来实现应用程序。然而这些模式是比较简单的:最好的做法是定义模式的名称包括这个模式能做什么的描述,可以应用的范围以及可能存在的问题等等。设计模式是通用的,开发者必须要在应用程序中自己实现。












Spring





IOC


为解决模块化问题,提供了一个比较规范的解决方案,可以使用不同的组件构建一个完整的应用程序。


Spring


定义的


IOC


可以在应用程序中得到综合的应用。许多项目团队使用


Spring





框架来构建健壮的可维护的应用程序。











1.2





模块












Spring


框架总共包括


20


个模块,模块主要包括:核心容器、数据访问和集成、


AOP





(面向切面编程)、测试等。










Spring



框架的模块示意图














.


核心容器







核心容器包括



javabeans



、核心、上下文,表达式语言模块。












Bean


和核心模块是


Spring


框架的基础模块,包括


IOC





DI


功能。


BeanFactory





比较精致的实现了工厂设计模式,它可以根据实际的应用逻辑代码区去耦的配置。









上下文模块是建立在核心和





bean


模块的基础之上的:这就意味着,基于框架式的对象访问,就有点类似于


JNDI


注册表。上下文模块继承了


bean


模块所有的功能,并且还扩展支持国际化





例如资源包的使用





、事件传播、资源加载、以及可以通过


Servlet


容器透明的创建上下文。上下文模块还支持


J2EE


特性,比如


EJB





JMX


和远程登录。


ApplicationContext





接口是上下文模块中使用最多的。












EL


模块提供了强大的表达式查询语言和运行中的操作对象图。它是在


JSP2.1


规范中统一定义的表达式语言。


EL


表达式支持设置和获取属性值、属性赋值、方法调用、通过数组访问上下文、集合和索引、逻辑和算术运算符、命名变量、以及通过


IOC


容器检索


Bean





的名称。它还支持链表投影和选择,以及常见的链表汇总。







.


数据访问和集成







数据访问

/

集成层包括





JDBC





ORM





OXM





JMS


和事务模块。


JDBC


模块提供了


JDBC





的抽象层,用来消除繁琐的

JDBC

代码以及用于解析数据库厂商的特有的校验代码。












ORM


模块对比较流行的


ORM


框架提供了集成,包括


JPA





JDO





Hibernate





IBatis


。结合所有


Spring


其他的功能特性,利用


ORM


封装包,你可以使用所有这些


O/ R





映射框架,如前面提到的简单声明式事务


管理


功能。












OXM


模块提供抽象层支持对象到


XML





映射以实现


JAXB





Castor





XMLBeans





JiBX





XStream


















Java


消息传递服务


(JMS)





模块能够生成生产和消费消息。







事务模块支持对所有的



POJO



以及实现接口的类的程序化和声明是事务管理。







.


网络







网络层主要包含



Web













Web-Servlet















Web-Struts

















Web-Portlet







(Web


组件

)








Spring







Web



模块具有



Web



方向的集成特性,比如文件上传、



Servlet



监听器初始化



IOC



容器以及



Web



方向的上下文环境。



Spring



同样也包含于



Web



相关的部分:远程处理。







Web-Servlet



主要包含

Spring

针对于

Web

应用的

SpringMVC



SpringMVC

实现了模型与表单的完全解耦,并且集成了

Spring

所有其他的功能。



Web-Struts



主要包含一些对比较经典



Struts







web



层支持的集成类,但是从



Spring3.0



开始已经被弃用。主要考虑可以迁移应用到



Struts2.0



以及



Spring



的集成或者



SpringMVC








Web-Portlet



模块主要包含:组件环境对



MVC


的支持以及对

Web-Servlet

的支持。




.



面向切面编程








Spring









AOP



模块允许自定义面向切面编程,比如将方法拦截与切入点完全解耦的分离。