【问题标题】:Spring - specifying key-value pairs in spring config fileSpring - 在 spring 配置文件中指定键值对
【发布时间】:2011-12-01 08:14:04
【问题描述】:

我有一个 DefaultProcessor.java 处理不同产品(大约 50 种产品)的文件。因此,产品特定的 bean 是在 spring 配置文件中配置的(每个产品一个 spring-config 文件)。

现在我还有一些 2-3 个产品特定的属性(键值对)。所以我想在配置文件本身中包含这些属性,而不是每个产品都有一个属性文件。

Q1. 是否可以在 spring-config 文件中指定键值对而不创建 bean?

Q2.如果不可能,那么创建一个具有Map<String, String> 属性的Environment.java 类,然后在每个产品特定的配置文件中配置该bean 是否是一种好习惯而不是将这些属性放在 .properties 文件中。

【问题讨论】:

    标签: java spring configuration


    【解决方案1】:

    您可以使用util:map

    来自春季文档:

    <util:map id="emails">
        <entry key="pechorin" value="pechorin@hero.org"/>
        <entry key="raskolnikov" value="raskolnikov@slums.org"/>
        <entry key="stavrogin" value="stavrogin@gov.org"/>
        <entry key="porfiry" value="porfiry@gov.org"/>
    </util:map>
    

    然后您可以使用普通的 spring setter/constructor 机制注入地图

    【讨论】:

    • @YatendraGoel:我不确定你问什么,但你可以这样做:&lt;bean ...&gt;&lt;property...&gt;&lt;util:map&gt;&lt;entry.../&gt; &lt;entry.../&gt;&lt;/util:map&gt;&lt;/property&gt;&lt;/bean&gt;
    • @Max 我知道我能做到。我想知道是否可以在不声明 bean 的情况下访问此地图?
    • 您的意思是从 spring 容器外部引用地图?
    猜你喜欢
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 2022-06-10
    • 2014-06-12
    • 1970-01-01
    • 2019-11-03
    • 2021-10-09
    相关资源
    最近更新 更多