컬렉션(Collection) 객체 설정
개발을 하다보면 list나 배열따위를 객체로 집어 넣어야 할 때도 있군... 정말... 징글징글.... 아오.....
아무튼 이런 경우에는 컬렉션 객체를 의존성 주입하면 된다. 이를 위한 컬렉션 매핑 및 관련 엘리먼트가 지원된다.
컬렉션 유형 |
엘리먼트 |
java.util.List, 배열 |
<list> |
java.util.Set |
<set> |
java.util.Map |
<map> |
java.util.Properties |
<props> |
List 타입 매핑
<bean id="빈 아이디" class="클래스 주소">
<property name="메소드이름">
<list>
<value>리스트1</value>
<value>리스트2</value>
</list>
</property>
</bean>
Map 타입 매핑
<bean id="빈 아이디" class="클래스 주소">
<property name="메소드이름">
<map>
<entry>
<key><value>킴썽</value></key>
<value> 한화 이글스 만세 </value>
</entry>
<entry>
<key><value>하루키</value></key>
<value> 야쿠르트 스왈로즈 만세 </value>
</entry>
</map>
</property>
</bean>
<entry>엘리먼트에서 사용된 <key>엘리먼트는 Map 객체의 key값을 설정할 때 사용,
<value> 엘리먼트는 Map객체의 value를 설정할 때 사용
Set 타입 매핑
<bean id="빈 아이디" class="클래스 주소">
<property name="메소드이름">
<set value-type="java.lang.String"> ->여기는 근데 int타입을 넣고싶으면 java.lang.Integer 넣으면 되는건가
<value> 한화이글스 화이팅 </value>
<value> 한화이글스 화이팅 </value>
<value> KT 위즈도 힘내랑! </value>
</set>
</property>
</bean>
중복값을 허용하지 않는 경우에 사용하는 set 컬렉션이다. 위의 예는 메소드를 호출할 때 문자열 타입의 데이터 여러개를 저장한 Set 컬렉션을 인자로 전달하겠다는 설정이다. 그런데 위 설정을 보면 "한화이글스 화이팅"이라는 문장이 두 번 등록된 것을 볼 수 있다. Set 컬렉션은 같은 데이터를 중복해서 저장하지 않으므로 실제 실행해보면 "한화이글스 화이팅"은 한 번만 저장된다.
Properties 타입 매핑
<bean id="빈 아이디" class="클래스 주소">
<property name="메소드 이름">
<props>
<prop key="킴썽">한화를 응원합니다. </prop>
<prop key="무라카미하루키"> 야쿠르트 스왈로즈를 응원합니다. </prop>
</props>
</property>
</bean>
key=value 형태의 데이터를 등록하고 사용할 때 Properties라는 컬렉션을 사용한다.
'건승하고있어요 > Spring framework' 카테고리의 다른 글
[Spring] 스프링1일차 - 의존성 주입 어노테이션 (0) | 2018.02.09 |
---|---|
[Spring] 스프링1일차 - 어노테이션 기반 설정 (0) | 2018.02.09 |
[Spring] 스프링1일차 - 의존성관리/Setter인젝션(Setter Injection) (0) | 2018.02.08 |
[Spring] 스프링1일차 - 의존성관리/생성자 인젝션(Constructor Injection) (2) | 2018.02.08 |
[Spring] 스프링1일차 - 스프링 XML 설정 (0) | 2018.02.08 |