Me gusta la inyección basada en el constructor, ya que me permite hacer campos inyectados final
. También me gusta la inyección dirigida por anotación, ya que simplifica mi context.xml
. Puedo marcar mi constructor con @Autowired
y todo funciona bien, siempre que no tenga dos parámetros del mismo tipo. Por ejemplo, tengo una clase:Spring - inyectar 2 beans del mismo tipo
@Component
public class SomeClass {
@Autowired(required=true)
public SomeClass(OtherClass bean1, OtherClass bean2) {
…
}
}
y un contexto de aplicación con:
<bean id="bean1" class="OtherClass" />
<bean id="bean2" class="OtherClass" />
Debe haber una forma de especificar el ID de frijol en el constructor de la clase SomeClass
, pero puedo' t lo encuentra en la documentación. ¿Es posible, o estoy soñando con una solución que aún no existe?
'@ Autowire' es por el nombre también, pero en ese caso es necesario proporcionar fijadores. Pero aquí se prefieren los argumentos de constructor, y '@ Autowire' no funcionará si ambos argumentos son del mismo tipo. Por lo tanto, la cosa se puede resolver usando '@ Qualifier'. –
aclararon la respuesta. – Bozho
Aviso ....... + 1 –