1. 컬렉션 DI
<bean id ="exam" class = "spring.di.entity.Exam" p:kor="10" p:eng="10"/>
<bean id="exams" class="java.util.ArrayList">
<constructor-arg> // ArrayList 는 컬렉션을 매개변수로 받는 생성자가 존재
<list> // ArrayList 의 요소 생성 및 삽입
<bean class = "spring.di.entity.Exam" p:kor="20" p:eng="10"/>
<ref bean="exam"/> // 위에 존재하는 exam bean 객체 삽입
</list>
</constructor-arg>
</bean>
// main 부분
List<Exam> exams = (List<Exam>) context.getBean("exams");
for(Exam e: exams) {
System.out.println(e.getKor()); // 10, 20 출력
}
2. 생성자 DI 방식이 아닌 컬렉션 객체 생성
// util 처리기가 list 요소를 처리함
<util:list id="exams" list-class="java.util.ArrayList">
<bean class = "spring.di.entity.Exam" p:kor="10" p:eng="10"/>
<ref bean="exam"/>
</util:list>
3. Setter DI 이용
public class CollectionBean{
private List<String> addressList;
public void setAddressList(List<String> addressList){
this.addressList = addressList;
}
public List<String> getAddressList(){
return addressList;
}
}
<bean id="tv" class="spring.di.entity.CollectionBean">
<property name="addressList"> // setAddressList setter 메서드
<list>
<value>서울시 강남구 역삼동</value>
<value>서울시 성동구 행당동</value>
</list>
</property>
</bean>
CollectionBean address = context.getBean(CollectionBean.class);
for(String str: address.getAddressList()) {
System.out.println(str);
}