spring-annotations spring-3

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 } }