Java 在Springbean上下文中声明对象数组
我试图在Spring上下文文件中创建一个对象数组,以便将其注入到声明如下的构造函数中:Java 在Springbean上下文中声明对象数组,java,spring,javabeans,Java,Spring,Javabeans,我试图在Spring上下文文件中创建一个对象数组,以便将其注入到声明如下的构造函数中: public RandomGeocodingService(GeocodingService... services) { } 我正在尝试使用标记: <bean id="googleGeocodingService" class="geocoding.GoogleGeocodingService"> <constructor-arg ref="proxy" /> <cons
public RandomGeocodingService(GeocodingService... services) { }
我正在尝试使用
标记:
<bean id="googleGeocodingService" class="geocoding.GoogleGeocodingService">
<constructor-arg ref="proxy" />
<constructor-arg value="" />
</bean>
<bean id="geocodingService" class="geocoding.RandomGeocodingService">
<constructor-arg>
<array value-type="geocoding.GeocodingService">
<!-- How do I reference the google geocoding service here? -->
</array>
</constructor-arg>
</bean>
我还没有在文档中找到一个例子或是关于如何做到这一点的东西。另外,你有什么更好的方法来实现我想做的事情的建议,请告诉我:)。那是因为没有
,只有
好消息是Spring将根据需要在列表和数组之间自动转换,因此将数组定义为
,Spring将强制将其转换为数组
这应该起作用:
<bean id="googleGeocodingService" class="geocoding.GoogleGeocodingService">
<constructor-arg ref="proxy" />
<constructor-arg value="" />
</bean>
<bean id="geocodingService" class="geocoding.RandomGeocodingService">
<constructor-arg>
<list>
<ref bean="googleGeocodingService"/>
</list>
</constructor-arg>
</bean>
如果需要,Spring还将强制单个bean进入列表:
<bean id="geocodingService" class="geocoding.RandomGeocodingService">
<constructor-arg>
<ref bean="googleGeocodingService"/>
</constructor-arg>
</bean>
查看。Spring可以自动将列表转换为数组[] 看看
我实际上是在使用
标记将一组对象注入bean中,它可以正常工作
请看下面的代码
<bean id="song1" class="mx.com.company.songs.Song">
<property name="name" value="Have you ever seen the rain?"/>
</bean>
<bean id="song2" class="mx.com.company.songs.Song">
<property name="name" value="La bamba"/>
</bean>
<bean id="guitarPlayer" class="mx.com.company.musician.GuitarPlayer">
<property name="songs">
<array>
<ref bean="song1"/>
<ref bean="song2"/>
</array>
</property>
</bean>
<bean id="song1" class="mx.com.company.songs.Song">
<property name="name" value="Have you ever seen the rain?"/>
</bean>
<bean id="song2" class="mx.com.company.songs.Song">
<property name="name" value="La bamba"/>
</bean>
<bean id="guitarPlayer" class="mx.com.company.musician.GuitarPlayer">
<property name="songs">
<array>
<ref bean="song1"/>
<ref bean="song2"/>
</array>
</property>
</bean>