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

发布于 2024-10-08 02:32:32 字数 200 浏览 3 评论 0原文

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

通常,该映射被定义为 bean 下的属性,并且在其下具有条目。

但如果参赛名单很大怎么办?它会使 XML 变得臃肿......

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

Suppose a project uses Spring and defines it's beans within XMLs ? And it has some bean that accepts a Map in constructor.

Usually, this map is defined as a property under the bean, and has, under it, entries.

But what if the entry list is huge ? It will bloat the XML big time...

Can it (the map) somehow be defined in it's on XML file and then refferenced by the bean that needs it ? How ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

生来就爱笑 2024-10-15 02:32:32

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

beans1.xml

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

beans2.xml

<import resource="beans1.xml"/>

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

Yes, using the <util:map> syntax (see docs), e.g.

beans1.xml

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

beans2.xml

<import resource="beans1.xml"/>

<bean id="..." class="...">
   <constructor-arg ref="myMap"/>
</bean>
晚雾 2024-10-15 02:32:32

斯卡夫曼的回答对我有用。但是,要设置 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>

skaffman's answer worked for me. However, to setup the XML namespaces, beans1.xml should look like:

<?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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文