ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] 콜렉션 생성과 DI
    프로그래밍 공부/Spring 2021. 4. 30. 10:39

     

    뉴렉처 강사님의 동영상 강의를 정리한 글입니다.

     

     

    ArrayList를 xml을 통해 생성하고 DI 해봅니다.

     

     

    1. xml을 통해 ArrayList만 생성하고 요소는 코드에서 넣기

     

    setting.xml

    <bean id="exams" class="java.util.ArrayList"></bean>

     

    Program.java

    List<Exam> exams = (List<Exam>) context.getBean("exams");
    exams.add(new NewlecExam(1,1,1,1));
    
    for(Exam e: exams) System.out.println(e);

     

     

    2. ArrayList 생성자를 이용하여 xml 파일에서 요소까지 넣기

    list Collection을 추가한 생성자를 통해 ArrayList 생성 

     

     

    setting.xml

    <bean id="exam" class="spring.di.entity.NewlecExam" p:kor="10" p:eng="10" p:math="10" p:com="10"/>
    
    <bean id="exams" class="java.util.ArrayList">
      <constructor-arg>
        <list>
          <bean class="spring.di.entity.NewlecExam" p:kor="1" p:eng="1" p:math="1" p:com="1"/>
          <ref bean ="exam"></ref>
        </list>
      </constructor-arg>
    </bean>

    1) constructor-arg 태그를 이용

    2) list 태그를 이용하여 Collection형으로 넣어줌

    3) bean 태그를 이용하여 넣어줄 요소 생성

    4) 이전에 만든 객체 넣어줄 때는 ref 태그 이용 

     

     

     

    3. util:list 이용: list 컬렉션을 개별적으로 만들기

     

    먼저 Namespaces에서 util을 체크해준다.

     

    setting.xml

    <util:list id="exams" list-class="java.util.ArrayList">
      <bean class="spring.di.entity.NewlecExam" p:kor="1" p:eng="1" p:math="1" p:com="1"/>
      <ref bean ="exam"></ref>
    </util:list>

    이때, util:list는 list와 다르다.

    list는 실제 객체를 생성해주는 것이 아니고 list를 setting 할 때 사용하는 태그이고,

    util:list는 실제 객체를 만든다.  따라서 id 값을 지정해주어야 한다.

    또한 list-class 필드를 이용하여 어떤 class를 사용하여 list를 만들지 정해주어야 한다.

     

    댓글

Designed by Tistory.