利用Spring框架改进J2EE编程

http://tech.ddvip.com   2008年03月28日    社区交流

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

  IoC框架大大改进了这种模式的效用,而且实际上废除了复杂而特殊的singleton代码来实现它。通过借用上例中引入的概念,我们实际上无需额外代码便能构建一个非常强大且无处不在的Service Locator模式。为此,在一开始有一个简单的要求,即Web操作的开发人员应专门处理实现接口的那些事情。这基本上已经通过EJB编程实现,但并不是说Web操作的开发人员处理的服务必须通过EJB来实现。它们可能只是普通Java对象或Web services。要点是应当通过接口(这样实现能够换入换出)来编写服务程序,并且运行时配置能够由Spring处理。

  Spring之所以非常适合于Service Locator模式,是因为它或多或少能够统一地处理不同类型的对象。通过少许的规划和大量使用IoC,我们多少都能够以一种通用方式来处理大多数对象,而不用管它们的特性(EJB、POJO等等)如何,并且不会引起Singleton工厂类的增加。这使Web层编程变得更加轻松和灵活。

  我们先来看一个关于这种模式如何应用于EJB的例子。我们都知道使用EJB可能是最复杂的方法,因为要将一个活动的引用引入EJB要做很多工作。若使用Spring,建议用EJB接口扩展非特定于EJB的业务接口。这样做有两个目的:保持两个接口自动同步,以及帮助保证业务服务对非EJB实现是可交换的,以便进行测试或清除(stubbing)。我们可以利用Spring固有的实用工具来定位和创建EJB实例,同时为我们处理所有难以处理的工作。相应代码如下所示:

<bean id="myBizServiceRef"
class="org.springframework.ejb.access.
LocalStatelessSessionProxyFactoryBean">
<property name="jndiName">
<value>myBizComponent</value>
</property>
<property name="businessInterface">
<value>
yourco.project.biz.MyBizInterface
</value>
</property>
</bean>

  接下来可以检索bean并开始使用它,方法如下:

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

正在加载评论...