【发布时间】:2015-02-15 05:29:02
【问题描述】:
我正在使用 Guice 来管理我的班级依赖性。我有一个 LogicHandler 类,它依赖于几个 Components 类。
public interface LogicHandler {
private Component component1;
private Component component2;
private Component component3;
}
public interface Component {
public String doWork();
}
我将拥有 3 个 LoigcHanlder 实例。使用哪个实例将在运行时决定。每个实例都有不同的组件实现,所有实现都是预定义的。
如果我使用 spring DI,xml 配置将如下所示:
<bean id="handler1" class="org.sample.handlers.DefaultHanlder">
<property name="component1" ref="componentImplementationA" />
<property name="component2" ref="componentImplementationB" />
<property name="component3" ref="componentImplementationC" />
</bean>
<bean id="handler2" class="org.sample.handlers.DefaultHanlder">
<property name="component1" ref="componentImplementationD" />
<property name="component2" ref="componentImplementationE" />
<property name="component3" ref="componentImplementationF" />
</bean>
<bean id="handler3" class="org.sample.handlers.DefaultHanlder">
<property name="component1" ref="componentImplementationG" />
<property name="component2" ref="componentImplementationH" />
<property name="component3" ref="componentImplementationI" />
</bean>
注意:所有处理程序均由 DefaultHanlder 实现。
根据某些参数使用哪个处理程序实例。
【问题讨论】:
标签: spring dependency-injection guice guice-3