Ich mag die konstruktorbasierte Injektion, da ich damit injizierte Felder erstellen kann final
. Ich mag auch die annotationsgesteuerte Injektion, da sie meine Arbeit vereinfacht context.xml
. Ich kann meinen Konstruktor mit markieren @Autowired
und alles funktioniert gut, solange ich nicht zwei Parameter des gleichen Typs habe. Ich habe zum Beispiel eine Klasse:
@Component
public class SomeClass {
@Autowired(required=true)
public SomeClass(OtherClass bean1, OtherClass bean2) {
…
}
}
und einen Anwendungskontext mit:
<bean id="bean1" class="OtherClass" />
<bean id="bean2" class="OtherClass" />
Es sollte eine Möglichkeit geben, die Bean-ID im Konstruktor der Klasse anzugeben SomeClass
, aber ich kann es nicht in der Dokumentation finden. Ist das möglich oder träume ich von einer Lösung, die es noch nicht gibt?