Mam ServiceListFactoryBean który tworzy listę wdrożeń usługę:Jak autowire factorybean
<bean id="services"
class="org.springframework.beans...ServiceListFactoryBean"
p:serviceType="ServiceInterface"/>
mogę uzyskać dostęp do usług za pomocą ApplicationContext bez problemu:
final List services = ctx.getBean("services", List.class));
mogę również wykorzystać trad Wstrzykiwanie konstruktora-arg z powodzeniem:
<bean id="aClass" class="AClass">
<constructor-arg ref="services"/>
</bean>
Ale jeśli spróbuję wyposażyć użytkownika w funkcję zależną Ency
@Autowired @Qualifier("services") private List services;
Potem dostaję BeanCreationException
spowodowane
FatalBeanException: No element type declared for collection [java.util.List]
Używam Wiosna 3.0.
To rzeczywiście zadziała, ponieważ teraz jest automatycznie nagrywane według nazwy, a nie według typu. Tak było wcześniej. Być może tym razem powaliłeś problem. Ale musisz zrozumieć dlaczego. Zastanów się więc nad odpowiedzią. Twoje zdrowie. –
Ocet - W całym projekcie są tylko dwa komponenty (do tej pory) i bez względu na to, czy używają @Qualifiers, czy też nie, lub jawnie ustawiasz domyślny-autowire na byType lub byName, @Autowiring nie działa dla tego ServiceListFactoryBean. –