利用Spring框架改进J2EE编程
http://tech.ddvip.com 2008年03月28日 社区交流
内容摘要:本文粗略地概括介绍了IoC,并详细介绍了Spring。Spring框架具有许多功能,其中许多功能在本文中只是点到为止。从基本的依赖注入到复杂的AOP操作,这些组成了Spring的强大功能,这是它的主要优点之一。能够根据问题需要使用或多或少的IoC功能是一个极具吸引力的理念。
接下来我们来看该接口的一个实现程序。实现ProtocolAdapter的类是CarrierPigeon,其代码类似于:
public class CarrierPigeon
implements ProtocolAdapterIfc
{
private boolean isTired = true;
private boolean canFlapWings = false;
public Integer getRemoteSensorValue()
throws CommChecksumFault,
CommConnectFailure,
CommPacketSequenceFault
{
if(isTired && !canFlapWings )
{
throw new
CommConnectFailure("I'm Tired!");
}
return new Integer(42);
}
}
为简洁起见,这里省略了属性的getter和setter方法。当调用getRemoteSensorValue()时,CarrierPigeon方法将检查它是否使用过度以及它还能否执行。如果它确是使用过度并且不能执行,我们将无法获得任何值,必须抛出CommConnectionFailure,它是一个已检查异常。到现在为止,一直都还不错。但别高兴得太早了!我已经决定不让应用程序编程人员应对“疲劳的信鸽”。可以将它包装在某种对象中,并在达到目的之前捕获异常,但必须处理20种不同的传感器。此外,我更喜欢对这些东西进行适度透明地处理,随着对该系统了解的增多,或许还会更改异常处理程序中的逻辑。我想要的是一个兼容API,应用程序编程人员能够使用它,并且随着时间的推移能够改变或增强。我想模板化异常处理,并让应用程序编程人员能够处理软的未检查异常,而不是硬异常。Spring非常符合这种情况。下面是为此而使用的策略的要点:
◆定义一个较软的消除已检查异常的最小接口。这就是应用编程人员将使用的接口。
◆使用Spring AOP结构,开发一个客户机调用和目标对象调用之间的拦截器,在本例中是“信鸽”。
来源:BEA 作者:Peter Braswell 责编:豆豆技术应用