Springコンテキストファイルにオブジェクトの配列を作成して、次のように宣言されたコンストラクターにオブジェクトの配列を注入できるようにしています。
public RandomGeocodingService(GeocodingService... services) { }
<array>
タグを使用しようとしています:
<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>
これを行う方法に関するドキュメントで例や何かを見つけることができませんでした。また、あなたが私がやろうとしていることを達成するためのより良い方法についての提案があります、私に知らせてください:)。
これは、<array>
などのものがなく、<list>
しかないためです。
良い知らせは、Springは必要に応じてリストと配列の間で自動変換するため、配列を<list>
として定義し、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は自動的にリストを配列に変換できます[]
チェックしてください http://forum.springsource.org/showthread.php?37767-Injecting-String-Array
<bean name="test" class="Test">
<property name="values" value="hugo,emil"></property>
</bean>
til schema を確認してください。
最良の回答をしたユーザーが言う理由を知りたい...
"それは<array>
などがないためです。<list>
しかないためです。"
現在、オブジェクトの配列をBeanに挿入するために<array>
タグを使用しています。
次のコードを見てください...
<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>