본문 바로가기

건승하고있어요/Spring framework

[Spring] 스프링1일차 - 컬렉션(Collection) 객체 설정

반응형

컬렉션(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라는 컬렉션을 사용한다. 


반응형