Mi piace l'iniezione costruttore-based in quanto mi permette di fare campi iniettati final
. Mi piace anche l'iniezione guidata dall'annotazione perché semplifica il mio context.xml
. Posso contrassegnare il mio costruttore con @Autowired
e tutto funziona correttamente, purché non disponga di due parametri dello stesso tipo. Per esempio, ho una classe:Spring - iniettare 2 fagioli dello stesso tipo
@Component
public class SomeClass {
@Autowired(required=true)
public SomeClass(OtherClass bean1, OtherClass bean2) {
…
}
}
e di un contesto di applicazione con:
<bean id="bean1" class="OtherClass" />
<bean id="bean2" class="OtherClass" />
Ci dovrebbe essere un modo per specificare l'ID di fagioli sul costruttore della classe SomeClass
, ma posso' lo trovi nella documentazione. È possibile o sto sognando una soluzione che non esiste ancora?
'@ Autowire' è per nome troppo, ma in tal caso è necessario fornire setter. Ma qui gli argomenti del costruttore sono preferiti e '@ Autowire' non funzionerà se entrambi gli argomenti sono dello stesso tipo. Quindi, la cosa può essere risolta usando '@ Qualifier'. –
ha chiarito la risposta. – Bozho
Notato ....... + 1 –