java - Bean @Autowired 在 spring 中默认

标签 java spring autowired

我正在使用 SpringFramework 和 Java。我使用 Spring xml 文件来定义架构流程以及将在 Java 部分中使用的 beans。

我的 xml 文件中有两个属于同一类的 bean,但它们的构造函数参数不同:

<bean id="beanA" class="Class" >
    <constructor-arg><value>valueA1</value></constructor-arg>
    <constructor-arg><value>ValueA2</value></constructor-arg>
</bean>

<bean id="beanB" class="Class" >
     <constructor-arg><value>valueB1</value></constructor-arg>
     <constructor-arg><value>valueB2</value></constructor-arg>-->
</bean>

有没有一种方法可以将其中一个 bean 设置为默认值,以便从 Java @Autowired 它?而且,当我想使用非默认 bean 时,应用 @Qulifier("beanName") 注释。

最佳答案

试试primary属性,例如

<bean id="b1" class="test.B" />
<bean id="b2" class="test.B" />
<bean id="b3" class="test.B" primary="true" />

这保证b3 bean会被注入(inject)这里

public class Test {
    @Autowired
    B b;
...

关于java - Bean @Autowired 在 spring 中默认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17567156/

相关文章:

java - Spring 的@Autowired 如何与没有实现的接口(interface)一起工作?

java - Apache Ignite 具有对象类型的索引字段

java - 在正则表达式世界中什么是 flavor ,Java 使用哪种 flavor ?

java - 用于订单顶部或第一条记录的 Spring java MongoDB @Query 注释

java - 使用 hibernate sessionFactory 或 JPA entityManager?

java - spring autowire 不工作返回 null

spring - Spring AOP 后 Bean Autowiring 不起作用

java - 使用 Hibernate Envers 的复合表

java - 如何让 JButton 在每次单击时添加 double

java - Tomcat spring boot 应用程序 LifecycleException