2010-12-15 4 views
9

프로젝트에서 Spring을 사용하고 XML 내에 빈을 정의한다고 가정 해보십시오. 그리고 생성자에서 Map을 받아들이는 bean을 가지고 있습니다.별도의 XML 파일 (Spring)에서 맵 속성을 정의하는 방법은 무엇입니까?

일반적으로이 맵은 bean 아래의 특성으로 정의되며 그 아래에 항목이 있습니다.

하지만 항목 목록이 거대한 경우 어떻게해야합니까? 그것은 XML 큰 시간을 부 풀릴 것입니다 ...

XML 파일에 어떻게 든 정의 할 수 있습니까? 그리고 그것을 필요로하는 빈에 의해 refferenced 할 수 있습니까? 어떻게?

답변

14

예, <util:map> 구문을 사용합니다 (예 : docs 참조).

beans1.xml

<import resource="beans1.xml"/> 

<bean id="..." class="..."> 
    <constructor-arg ref="myMap"/> 
</bean> 
+0

것은 내가 동일한 기능을 수행 할 수 있지만 주석과 SpEL을 함께 : 같은 그러나, XML 네임 스페이스 설정에 beans1.xml이 보일 것입니다? (지도를 나타내는 별도의 빈 클래스로서 EL을 사용하여 항목을 주입하도록 주석을 단다) – Belun

3

skaffman의 대답은 나를 위해 일한

<util:map id="myMap"> 
    <entry .../> 
    <entry .../> 
    <entry .../> 
    <entry .../> 
</util:map> 

beans2.xml.

<?xml version="1.0" encoding="UTF-8"?> 
<util:map id="myMap" 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
     http://www.springframework.org/schema/util 
     http://www.springframework.org/schema/util/spring-util.xsd"> 

    <entry key="myKey" value="myValue" /> 

</util:map> 
관련 문제