对依赖注入技术的初学指导
2008-09-20 13:26:20 来源:WEB开发网请注意XWork依赖于一个叫做‘推动者‘的接口(enabler interface)。它基本上是一个为服务组件定义setter方法的接口。
public interface CabAgencyAware
{
public void setCabAgency(CabAgency cabAgency);
}
和其他的容器不同的是,XWork要求我们定义AirlineAgencyAware,CabAgencyAware和TripPlannerAware 接口,并
正确地实施它们。从这个角度来看,XWork要比其他框架烦人些。
容器的初始化
这看上去会有一点复杂。
ComponentConfiguration config = new ComponentConfiguration();
InputStream in =
XworkHarness.class.getClassLoader().getResourceAsStream("components.xml");
config.loadFromXml(in);
cm = new DefaultComponentManager();
config.configure(cm,"application");
依赖性的声明
各类通过对必要的’推动者接口‘的实施来声明它们之间的依赖性。因此每一个服务组件通过实施相应的’推动者接口‘来声明
它对其他组件的依赖性。XWork使用’推动者接口‘来解决依赖性。
public class SetterBasedCabAgency extends AbstractCabAgency implements AirlineAgencyAware { ... }
依赖性的解决方案
很自然的,从一个组件管理器引发的一个查询就可以自动解决所有的依赖性问题。
cm.getComponent(TripPlannerAware.class);
XWork和WebWork
XWork通常和WebWork被绑在一起使用。在那样的情况下,你需要做的就是定义并实施推动者接口类,写出XML文件,
更多精彩
赞助商链接