Внедрение коллекций

В свойства создаваемого бина можно внедрять не только ссылки на другие бины и примитивные типы, но также и коллекции.

Структура проекта:

Для проверки внедрения коллекций используем следующий класс:

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);
    }
}

…и смотрим результат: