❑ ArrayList의 생성자를 이용한 Collection Bean 생성
1) ArrayList의 생성자 살펴보기
ArrayList는 Collection을 받을 수 있는 생성자가 있다. 따라서 Spring Bean을 등록할 때 ArrayList 클래스를 type으로 이용해 Collection Bean을 생성한다.
2) SpringConfig.xml: DI지시서 작성하기
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
// Case1. ArrayList 내부에 bean 직접 정의
<bean id="calculators" class="java.util.ArrayList"> // ArrayList를 타입으로 사용
<constructor-arg>
<list>
<bean id="calculatorBean" class="com.test.di.SalesCalculator" p:apple="10" p:banana="20" p:citron="30" />
</list>
</constructor-arg>
</bean>
// Case2. 외부에 정의한 bean을 참조
<bean id="calculatorBean" class="com.test.di.SalesCalculator" p:apple="10" p:banana="20" p:citron="30" />
<bean id="calculators" class="java.util.ArrayList"> // ArrayList를 타입으로 사용
<constructor-arg>
<list>
<ref bean="calculatorBean"/>
</list>
</constructor-arg>
</bean>
</beans>
- 태그 설명
- <bean id="calculators" class="java.util.ArrayList">
ArrayList 타입의 객체를 Bean을 생성한다. - <constructor-arg>, <list>
생성자로 Collection을 받을 수 있으므로, 생성자 DI임을 알리는 <constructor-arg> 태그와 Collection <list> 태그를 사용한다
- <bean id="calculators" class="java.util.ArrayList">
- Case1과 Case2의 차이
- Case1: 컬렉션에 들어갈 bean을 <list> 태그 내에 직접 정의
- Case2: bean을 외부에 정의한 후 <ref> 태그를 이용해 참조
3) Client Code
public void client() {
ApplicationContext context = new ClassPathXmlApplicationContext("./SpringConfig.xml");
List<Calculator> calculators = (List<Calculator>) context.getBean("calculators");
for (Calculator each : calculators) {
System.out.println(each);
}
}
'Back-End > Spring' 카테고리의 다른 글
[React, Spring] 서버에 MultipartFile 업로드(Axios POST 사용) (0) | 2022.01.26 |
---|---|
[Spring] Annotation을 이용한 DI (1) @Component, @AutoWired (0) | 2022.01.17 |
[Spring] IoC 컨테이너 사용하기 - XML Config (0) | 2021.08.19 |
[Spring] 값(Value) 주입 설정 방법 - XML Config (0) | 2021.07.24 |
[Spring] 의존성 주입 방법(Setter, 생성자 방식) - XML Config (0) | 2021.07.17 |