스프링 Collection 객체 설정
컬렉션 유형 | 엘리먼트 |
---|---|
java.util.List, 배열 | <list> |
java.util.Set | <set> |
java.util.Map | <map> |
java.util.Properties | <props> |
List 타입 매핑
* 매핑(mapping)이란 하나의 값을 다른 값으로 대응시키는 것을 말한다.
<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라는 컬렉션을 사용한다.