【发布时间】:2020-07-19 16:53:15
【问题描述】:
当使用带有xml配置的spring时,我们可以通过编写相同的类似代码来引用或添加多个bean的依赖项到一个bean
<beans>
<bean id ="parent" class="com.Parent">
<property name = "child1" ref = "child1"/>
<property name = "child2" ref = "child2"/>
</bean>
<bean id = "child1" class="com.child">
<property name = "name" value = "abc"/>
</bean>
<bean id = "child2" class="com.child">
<property name = "name" value = "xyz"/>
</bean>
</beans>
现在我有下面的代码,我想为每个家庭 bean 引用 2 个汽车 bean 我正在使用限定符来解决歧义,我们可以使用限定符或其他方式引用多个 bean 吗??
Configfile.java
@Bean("jeep")
public Car returnJeep()
{
Car c = new Car();
c.setName("Wrangler");
return c;
}
@Bean("volvo")
public Car returnVolvo()
{
Car c = new Car();
c.setName("Volvo");
return c;
}
Home.java
@Autowired
@Qualifier("volvo,jeep") --> How can I refer multiple beans here????
private Car car;
@Override
public void print() {
System.out.println("Cheers!!, now you own a new home and a "+ car.getName());
}
实现这一点的一种方法是再创建一个 car 类的引用并使用限定符指定另一个有效的 bean 名称,还有其他方法可以实现吗?
我们是否可以通过使用@Components 来实现相同的目的,即一个 bean 引用多个 bean?
【问题讨论】:
-
我想你需要的是
decorator pattern。
标签: java spring annotations spring-annotations spring-bean