<list /> <set /> <map /> <props />는 parent bean – child bean의 관계에 있을 때 merge가 가능합니다. merge를 하고 싶을 때는 위 태그들의 속성 중에 merge 속성에 “true” 값을 주면 됩니다.

    <bean id=”keesun3″ class=”beanConfiguration.Member”>
        <property name=”wishList”>
            <list>
                <value>NDS</value>
                <value>Wii</value>
                <value>WOW</value>
            </list>
        </property>
    </bean>

    <bean id=”keesun4″ parent=”keesun3″ class=”beanConfiguration.Member”>
        <property name=”wishList” >
            <list merge=”true”>
                <value>MacBook</value>
                <value>WOW</value>
            </list>
        </property>
    </bean>

keesun3 이 keesun4 의 parent bean인 상태에서 <list /> merge 속성을 true를 지정했기 때문에 아래의 테스트가 통과 합니다.

    @Test public void listMerging(){
        Member keesun = (Member) bf.getBean(“keesun4”);
        List<String> wishList = keesun.getWishList();
        assertEquals(5, wishList.size());
        assertEquals(“NDS”, wishList.get(0));
        assertEquals(“Wii”, wishList.get(1));
        assertEquals(“WOW”, wishList.get(2));
        assertEquals(“MacBook”, wishList.get(3));
        assertEquals(“WOW”, wishList.get(4));
    }

chile bean의 콜렉션에 같은 요소가 있을 경우 <list /> 와는 다르게 <set /> <map /> <props /> 는 child bean의 콜렉션이 parent bean에 있는 collection을 overriding 합니다.