spring annotations - @Autowired by constructor busca beans por tipo. Cómo inyectar un bean por nombre a un constructor usando anotación automática
spring-annotations spring-3 (1)
@Autowired
by constructor busca beans por tipo. ¿Cómo inyectar un bean por nombre a un constructor usando una anotación automática? Tengo 2 beans del mismo tipo, pero necesito inyectarlo al constructor de otra misma clase basado en el nombre del bean. ¿Cómo lo hago?
XML:
<bean id="A" class="com.Check"/>
<bean id="B" class="com.Check"/>
Java:
Class C {
private Check check;
@Autowired
public C(Check check){
this.check = check
}
}
Cuando hago esto, obtengo una excepción que me dice que tengo 2 frijoles del mismo tipo de verificación, pero requiere que haya solo un frijol de ese tipo. ¿Cómo puedo inyectar el bean con id="B"
en esta clase C
mediante la inyección del constructor?
En mi applicationContext.xml
he mencionado autowire="byType"
. Necesito autowire byName
solo en esta clase en particular, todo lo que necesita es autowired solo por Type
Debe usar la anotación @Qualifier con su id de bean objetivo para el parámetro constructor.
<bean id="A" class="com.Check"/>
<bean id="B" class="com.Check"/>
Class C {
private Check check;
@Autowired
public C(@Qualifier("A") Check check){ //<-- here you should provide your target bean id
this.check = check
}
}