이번에는 콜렉션을 생성하여 목록을 DI하는 방법을 알아 본다.
먼저 다음과 같은 코드를 setting.xml에서 DI하는 것을 알아본다.
List<Exam> exams = new ArrayList<>();
exams.add(new NewlecExam(1, 1, 1, 1));
해당 코드는 스프링을 통하게 하기 위해 다음과 같이 변경될 것이며
List<Exam> exams = (List<Exam>) context.getBean("exams");
exams.add(new NewlecExam(1, 1, 1, 1));
setting.xml에서는 다음과 같이 작성되면 된다.
<bean id="exams" class="java.util.ArrayList">
<constructor-arg>
<list>
<bean class="spring.di.entity.NewlecExam" p:kor="1" p:eng="2"/>
<ref bean="exam"/>
</list>
</constructor-arg>
</bean>
더 짧은 코드로 만들기위해 namespace
에서 util
처리기를 추가해준다. 그럼 파일 상단에 다음과 같이 처리기가 추가된 것을 알 수 있다.
xmlns:util="http://www.springframework.org/schema/util"
이후 동일한 내용을 다음과 같이 작성하면 된다.
<util:list id="exams" list-class="java.util.ArrayList">
<bean class="spring.di.entity.NewlecExam" p:kor="1" p:eng="2"/>
<ref bean="exam"/>
</util:list>