JAVA/Spring
Spring - XML Collection List, Set, Map, Property 사용 방법
realizers
2021. 10. 18. 23:06
728x90
반응형
XML 파일의 <property> 및 <constructor-arg> 요소에서 스프링 <beans> 스키마에 정의된 <list>, <map>, <set>
의 요소를 사용하면 List, Map, Set의 형식의 속성과 생성자 인자를 설정할 수 있습니다.
Case 01 - Property Type
- 첫번째 방법 - <value> 요소를 사용하여 key = value 형식으로 지정할 수 있습니다.
- 두번째 방법 - <props> 요소를 사용하여 내부에 <prop> 요소의 key 특성과 value형식으로도 사용할 수 있습니다.
<bean id="dataTypes" class="com.spring.beans.DataTypesExample">
<!-- Property Type -->
<constructor-arg name="propertiesType">
<value>
x = y
a = b
</value>
</constructor-arg>
<!-- Property Type -->
<constructor-arg name="anotherPropertiesType">
<props>
<prop key="book">Getting started with the Spring Framework</prop>
</props>
</constructor-arg>
</bean>
Case 02 - List Type
- <list> 요소를 사용하여 값을 지정할 수 있습니다.
- <list>의 특성 중 value-type을 사용하여 생성자 인자가 받는 요소의 형식을 지정할 수 있습니다.
- value-type은 선택사항이며, value-type 특성을 지정하면 스프링 컨테이너는 등록된 속성 편집기를 사용해 값을 value-type 특성으로 지정된 형식으로 변환하며, 필요한 경우 매개변수화된 List 형식에서 허용되는 형식으로 다시 변환할 수 있습니다.
- value-type 특성을 지정하지 않으면 스프링 컨테이너는 간단히 등록된 속성 편집기를 사용해 값을 매개변수화된 List 형식에서 허용되는 형식으로 변환합니다.
<bean id="dataTypes" class="com.spring.beans.DataTypesExample">
<!-- List Type -->
<constructor-arg name="listType">
<list value-type="java.lang.Integer">
<value>1</value>
<value>2</value>
</list>
</constructor-arg>
<constructor-arg name="anotherlistType">
<list>
<ref bean="aBean" />
<ref bean="bBean" />
</list>
</constructor-arg>
</bean>
<bean id="aBean" class="example.ABean" />
<bean id="bBean" class="example.BBean" />
Case 03 - Map Type
- <map> 요소를 사용하여 값을 지정할 수 있습니다.
- 사용 방법은 아래 예제와 같으며 key-type, value-type 특성을 지정하여 허용하는 키와 값의 형식을 지정할 수 있습니다.
<bean id="dataTypes" class="com.spring.beans.DataTypesExample">
<!-- Map Type -->
<constructor-arg name="mapType">
<map>
<entry>
<key><value>map key 1</value></key>
<value>map key 1’s value</value>
</entry>
</map>
</constructor-arg>
<constructor-arg name="anotherMapTypeOne">
<map>
<entry key="1" value="map key 1’s value" />
</map>
</constructor-arg>
<constructor-arg name="anotherMapTypeTwo">
<map>
<entry key="1">
<list>
<value>문자열1</value>
<value>문자열2</value>
<value>문자열3</value>
</list>
<entry>
</map>
</constructor-arg>
<constructor-arg name="anotherMapTypeTwo">
<map>
<entry>
<key>
<ref bean="aBean" />
</key>
<ref bean="bBean" />
<entry>
</map>
</constructor-arg>
</bean>
<bean id="aBean" class="example.ABean" />
<bean id="bBean" class="example.BBean" />
Case 04 - Set Type
- <set> 요소를 사용하여 값을 지정할 수 있습니다.
- value-type 특성에는 Set에 하용되는 형식을 지정할 수 있습니다.
<bean id="dataTypes" class="com.spring.beans.DataTypesExample">
<!-- Set Type -->
<constructor-arg name="setType">
<set>
<value>Element 1</value>
<value>Element 2</value>
</set>
</constructor-arg>
</bean>
728x90
반응형