В свойства создаваемого бина можно внедрять не только ссылки на другие бины и примитивные типы, но также и коллекции.
Структура проекта:
Для проверки внедрения коллекций используем следующий класс:
package ru.mydesignstudio.spring.core.ioc.beans; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; public class CollectionsTest { private Properties properties; private List list; private Set set; private Map map; public void setProperties(Properties properties) { this.properties = properties; } public void setList(List list) { this.list = list; } public void setSet(Set set) { this.set = set; } public void setMap(Map map) { this.map = map; } }
Описание контекста:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="collectionsTest" class="ru.mydesignstudio.spring.core.ioc.beans.CollectionsTest"> <property name="properties"> <props> <prop key="first">First value</prop> <prop key="second">Second value</prop> </props> </property> <property name="list"> <list> <value>First value</value> <value>Second value</value> </list> </property> <property name="set"> <set> <value>First</value> <value>First</value> <value>Second</value> </set> </property> <property name="map"> <map> <entry key="firstKey" value="First value" /> <entry key="secondKey" value="Second value" /> </map> </property> </bean> </beans>
Получаем бин…
package ru.mydesignstudio.spring.core.ioc; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import ru.mydesignstudio.spring.core.ioc.beans.CollectionsTest; public class Application { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("common.xml"); CollectionsTest bean = context.getBean(CollectionsTest.class); System.out.println(bean); } }
…и смотрим результат: