Ich mag Konstruktor-basierte Injektion, wie es mir ermöglicht, injizierte Felder final
zu machen. Ich mag auch Anmerkung Einspritzung, wie es vereinfacht meine context.xml
. Ich kann meinen Konstruktor mit @Autowired
markieren und alles funktioniert gut, solange ich nicht zwei Parameter des gleichen Typs habe. Zum Beispiel habe ich eine Klasse:Spring - inject 2 Bohnen des gleichen Typs
@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 ein Weg sein, um die Bean-ID auf dem Konstruktor der Klasse angeben SomeClass
, aber ich kann‘ t finde es in der Dokumentation. Ist es möglich, oder träume ich von einer Lösung, die es noch nicht gibt?
'@ Autowire' ist nach Namen auch, aber in diesem Fall müssen Sie Etter bieten. Aber hier werden Konstruktorargumente bevorzugt, und '@ Autowire' funktioniert nicht, wenn beide Argumente vom selben Typ sind. Daher kann die Sache mit '@ Qualifier' gelöst werden. –
klärte die Antwort. – Bozho
Noticed ....... + 1 –