Lubię wtrysk oparty na konstruktorze, ponieważ pozwala mi on wstrzykiwać pola final
. Lubię również wtrysk z adnotacją, ponieważ upraszcza mój context.xml
. Mogę oznaczyć mojego konstruktora na @Autowired
i wszystko działa dobrze, o ile nie mam dwóch parametrów tego samego typu. Na przykład, mam klasy:Sprężyna - wstrzyknij 2 fasole tego samego rodzaju.
@Component
public class SomeClass {
@Autowired(required=true)
public SomeClass(OtherClass bean1, OtherClass bean2) {
…
}
}
i kontekst aplikacji z:
<bean id="bean1" class="OtherClass" />
<bean id="bean2" class="OtherClass" />
Nie powinno być jakiś sposób, aby określić identyfikator fasoli na konstruktora klasy SomeClass
, ale mogę” • znaleźć go w dokumentacji. Czy to możliwe, czy też marzę o rozwiązaniu, które jeszcze nie istnieje?
'@ Autowire' jest według nazwy też, ale w tym przypadku trzeba zapewnić ustawiające. Ale tutaj argumenty konstruktora są preferowane, a '@ Autowire' nie działa, jeśli oba argumenty są tego samego typu. Dlatego rzecz można rozwiązać za pomocą '@ Qualifier'. –
wyjaśnił odpowiedź. – Bozho
Zauważono ....... + 1 –