Ho la seguente configurazione XML:Come posso utilizzare la configurazione Spring XML per impostare una proprietà bean con l'elenco di tutti i bean di un certo tipo?
<bean id="bean1" class="Simple"/>
<bean id="bean2" class="Simple"/>
<bean id="tasks" class="java.util.ArrayList">
<constructor-arg>
<list>
<ref bean="bean1" />
<ref bean="bean2" />
</list>
</constructor-arg>
</bean>
<bean id="list" class="Comp">
<property name="tasks" ref="tasks"/>
</bean>
I "compiti" contiene tutti i fagioli di tipo semplice. Il problema con questo è che potrei dimenticare di aggiungere un bean semplice che ho configurato alla lista.
ho potuto fare questo programatically utilizzando
Map map = context.getBeansOfType(Simple.class);
e impostando il fagiolo lista con i fagioli recuperati.
C'è un modo per farlo utilizzando solo la configurazione XML?
Questo non dovrebbe semplicemente mettere la lista stessa nella proprietà delle attività di Comp? In che modo questo aiuta a popolare la lista stessa con tutti i bean di tipo Simple? – rudolfson
@rudolfson: la lista non dovrebbe più esistere e javadoc per @Autowired ha una bella spiegazione delle regole: http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/beans /factory/annotation/Autowired.html –
Grazie per avermi illuminato. Non ho letto i documenti autowire fino alla fine e quindi non ero a conoscenza di questa capacità. +1 per la tua risposta! – rudolfson