说明:最近利用及其有限的上班时间,阅读和翻译了Speing的参考文献。版本是已发布的Speing3.2.4。我的英语水平确实有限,且在软件领域也很久没有深入过。估计翻译欠妥的地方太多(有些地方我自己都觉得翻译不通顺)。不过算是给自己一个持续学习的机会,一方面也锻炼了意志品质,另一方面也能多少学点英语。
1.Spring框架介绍
Spring框架式一个为Java应用开发提供完善的基础架构支持的Java平台。由Spring处理基本架构,以便于开发者聚焦在应用本身上。
Spring让你可以以“简单洁净Java对象”(POJOs)来建立你的应用,同时在非侵入是企业服务中使用POJSs。这些应用对于Java SE 编程模式以及部分及局部JavaEE来说是功能强大的。
作为一个应用开发者如何使用Spring框架的优势的例子:
l 生成一个在数据库存储的Java 方法,而不需要处理事务的API
l 生成一个本地的Java方法远程操作,而不需要处理远程API
l 生成一个本地的Java方法进行管理操作,而不用调用JMX API
l 生成一个本地的Java 信息处理,而不用调用JMS API
1.1依赖注入和控制反转
Java应用—— 一个可以实现小至功能有限的小应用程序,大至多层服务端的企业级应用的内容宽泛的术语—— 一般来说包含着各种对象及相互之间正确的应用关系。这即对象之间彼此存在着依赖关系。
尽管Java平台提供了一套健全的开发工能,但它缺少将基础组件组织成整体的手段,这一点的缺乏也成为架构师和开发者的任务。诚然,你可以利用正如:工厂、抽象工厂、建设者、装饰以及服务定为等设计模式去构成多种多样的类和对象实例以构建整个应用。然而对于这些模式可以简单的说:通过最佳实践给出一个名称,并描述这个模式的功能、应用,以及其解决的问题等等。设计模式是你在你的应用中一定要用的最熟知的实现方式。
Spring 框架的控制反转组件针对不同的组件做好使用准备并提供了一个形式化的手段来构成完整的应用。Spring框架编纂了形式化的设计模式作为你可以集成在你的应用中的的对象。很大数量的组织和机构用在应用中使用Spring框架的方式来保证工程的健壮性和可维护性。
1.2 模块
Spring框架包括了按照特点及功能组织的20个模块。这些模块被分成核心容器、数据存储及集成、Web、AOP(面向切片编程)、仪器仪表|、和测试等下图所示的模块。
Spring框架概况
核心容器
核心容器由Core 、Beans、Context和语言表达式组成。
Core和Beans 模块提供了框架的基本组成部分,其中包含控制反转和依赖注入机制。BeanFactory(Bean工厂)是工厂模式的一个较为复杂的实现。它消除了程序中对于单例模式的需求,并且让你的程序逻辑与配置上脱钩、规范依赖。
Context(上下文)模块建立且提供于在Core和Beans模块的基础上,它是一种在框架类型下实现对象存储操作的手段,有一点像JNDI注册。
上下文继承了Beans模块的特性,并且增加了对国际化的支持(例如用在资源包中)、事件广播、资源加载和创建上下文(例如使用一个servlet容器)。上下文组件也支持例如EJB,JMX这样的JavaEE特性和基础远程特性。应用上下文接口(ApplicationContext)是上下文模块的焦点。
表达式语言模块提供了一个强大的表达式功能用来在运行时查询和操作对象图。这是作为JSP2.1规范所指定的统一表达式语言(unified EL)的一种延续。这种语言支持对属性值、属性参数、方法调用、数组内容存储、收集器和索引、逻辑和算数操作及命名空间进行获取和配置(setting and getting),并且通过名称从Spring的控制反转容器中取回对象。表达式语言模块也支持List的映射和选择,正如像常见的列表汇总一样。