利用Spring框架改进J2EE编程

豆豆网   技术应用频道   2008年03月28日    社区交流

内容摘要:本文粗略地概括介绍了IoC,并详细介绍了Spring。Spring框架具有许多功能,其中许多功能在本文中只是点到为止。从基本的依赖注入到复杂的AOP操作,这些组成了Spring的强大功能,这是它的主要优点之一。能够根据问题需要使用或多或少的IoC功能是一个极具吸引力的理念。

  IoC简介

  一般来说,IoC是一种管理类之间关联的技术。没错,就这么简单!任何人都不是孤立的,对于各个对象来说也是如此。应用程序中的对象是相互依赖的。通过编程方式来表现这种依赖性通常既冗长又容易出错。好的IoC框架将声明式地(通过一个XML配置文件)而不是编程式地(这种方式的可靠性较差)——串连起应用程序之间的相互依赖性。

  自由使用接口是IoC开发的一个主要方针。接口编程大大提高了应用程序的灵活性,从而增强了声明式的关联。接口实现是通过IoC配置在运行时声明的,这样就能够在不影响或少影响实际应用程序代码的情况下“重建(rewire)”关联。这在各种IoC框架中是反复提及的一个主题,一般而言,也是应该遵循的良好实践。

  一个小例子

  我喜欢通过例子来更快地理解概念。下面就是运用了IoC的一组例子;您将看到,这些例子的复杂性是逐递增的。大多数人在一开始使用IoC容器时都是利用其依赖注入(inject dependency)功能——即,声明式地将对象关联起来。利用IoC有助于创建更整洁的代码,如有必要重建对象之间的关联,一般来说对于这些代码也会更灵活、更容易。IoC的优点远不止依赖注入,而其扩展功能确是以依赖注入程序为起点的。

  我们将从构建简单的依赖注入例子开始。第一个例子用于阐明已经提及的两个概念。第一个概念是IoC在运行时构建和关联对象的能力,第二个是与接口编码相结合而产生的灵活性。首先假定架构师递交了图1所示的UML。

利用Spring框架改进J2EE编程

  图1:接口可插性

  这个小例子表示一个温度测量系统。几个传感器对象属于不同的类型,但都实现了ProtocolAdapterIfc接口,因此在将它们插入TemperatureSensor对象时,它们是可互换的。在需要TemperatureSensor时,系统中的某个实体必须知道要生成并与该传感器对象关联的ProtocolAdapterIfc的具体类型。在本例中,该传感器可基于命令行参数、数据库中的行或通过属性文件进行配置。本例还不足以造成挑战或展示一个复杂框架,但它足以阐明IoC基础。

来源:BEA    作者:Peter Braswell    责编:豆豆技术应用

正在加载评论...