컬렉션 및 목록 DI (XML)

Codren·2021년 6월 17일
0

Section 1. 컬렉션 DI

1. 컬렉션 DI

  • Java 에서 제공하는 컬렉션 (ArrayList 등) 객체를 DI
  • 생성자 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 방식이 아닌 컬렉션 객체 생성


  • ArrayList 생성자로 요소를 넣는 것이 아닌 직접 컬렉션 객체 생성
// 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 이용

  • CollectionBean 클래스
public class CollectionBean{
    private List<String> addressList;
 
    public void setAddressList(List<String> addressList){
        this.addressList = addressList;
    }
    public List<String> getAddressList(){
        return addressList;
    }
}
  
  • Spring Bean Configuration File 설정
<bean id="tv" class="spring.di.entity.CollectionBean">
        <property name="addressList">		//  setAddressList setter 메서드
            <list>
                <value>서울시 강남구 역삼동</value>
                <value>서울시 성동구 행당동</value>
            </list>
        </property>
</bean>    

  • main 부분
CollectionBean address = context.getBean(CollectionBean.class);
		
for(String str: address.getAddressList()) {

  	System.out.println(str);
}

0개의 댓글