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