如何在单独的XML文件中定义映射属性(在Spring中)?

如何在单独的XML文件中定义映射属性(在Spring中)?,spring,code-injection,Spring,Code Injection,假设一个项目使用Spring并在XMLs中定义它的bean?它有一些bean在构造函数中接受映射 通常,这个映射被定义为bean下的一个属性,并且在它下面有条目 但如果参赛名单很大怎么办?它将在XML大的时候膨胀 它(映射)能以某种方式在它的XML文件中定义,然后由需要它的bean引用吗?如何操作?是,使用语法(请参阅),例如 beans1.xml <util:map id="myMap"> <entry .../> <entry .../>

假设一个项目使用Spring并在XMLs中定义它的bean?它有一些bean在构造函数中接受映射

通常,这个映射被定义为bean下的一个属性,并且在它下面有条目

但如果参赛名单很大怎么办?它将在XML大的时候膨胀

它(映射)能以某种方式在它的XML文件中定义,然后由需要它的bean引用吗?如何操作?

是,使用
语法(请参阅),例如

beans1.xml

<util:map id="myMap">
    <entry .../>
    <entry .../>
    <entry .../>
    <entry .../>
</util:map>
<import resource="beans1.xml"/>

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

beans2.xml

<util:map id="myMap">
    <entry .../>
    <entry .../>
    <entry .../>
    <entry .../>
</util:map>
<import resource="beans1.xml"/>

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

斯卡夫曼的回答对我很有用。但是,要设置XML名称空间,beans1.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>

除了注释和SpEL,我还能做同样的事情吗?(一个单独的bean类,表示映射,对其进行注释以将其条目注入EL)