我有一门我无法更改的课程:
class SomeBean
{
@Inject private Dep1 dep1;
@Inject private Dep2 dep2;
...
@Inject private DepN depN;
}
我有我的课:
class MyBean
{
@Inject@Named("bean1") private SomeBean bean1;
@Inject@Named("bean2") private SomeBean bean2;
}
如何进行模块配置,以便由具有不同 dep2 实例bean1
的bean2
不同实例注入,但所有其他依赖项都相同?
如果我使用的是 spring,我可以在上下文文件中创建一个 bean,例如:
<bean class="MyBean">
<property name="bean1">
<bean class="SomeBean">
<property name="dep2" ref="dep2InstanceA"/>
</bean>
</property>
<property name="bean2">
<bean class="SomeBean">
<property name="dep2" ref="dep2InstanceB"/>
</bean>
</property>
</bean>
这样我就明确地覆盖了一个属性,所有其他属性都是自动装配的。