【问题标题】:How to set spring bean properties in a .properties resource file如何在 .properties 资源文件中设置 spring bean 属性
【发布时间】:2011-10-12 09:48:46
【问题描述】:

这是否可以通过 .properties 文件中的点表示法来设置 spring bean 的属性。例如假设您已经定义:

<bean name="myBean" class="MyBean" />

是否可以将 myBean 的 MyBean.someProperty 设置为属性文件中定义的值?例如通过这个属性文件:

myBean.someProperty = aValue

我知道 PropertyPlaceholderConfigurer,但我的要求与它支持的有所不同。

【问题讨论】:

    标签: spring properties inversion-of-control javabeans


    【解决方案1】:

    Spring 发行版中还有一个 PropertyOverrideConfigurer 可用,它完全符合您的要求。

    【讨论】:

      【解决方案2】:

      如果你的 xml 中有这样的属性,你可以从这样的属性文件中分配一个值

      <property name="someProperty" value="${myBean.someProperty}" />
      

      其中必须处理PropertyPlaceholderConfigurer

      但我认为,你想覆盖你的属性,所以看看PropertyOverrideConfigurer的文档

      【讨论】:

      • 感谢您的正确回答。我很想知道这是否也可以通过 PropertyOverrideConfigurer 添加地图条目?例如,您定义了一个带有 map 属性的 bean,为其添加了许多条目(在 XML 文件中)。现在您想在属性文件中向映射添加更多条目。这可能吗?
      • 我知道,您可以在SpringEL (Expression Language) 上做这些事情,但我不确定这是否也适用于属性。所以请自己尝试一下。
      • 我可以把它放在哪里?
      【解决方案3】:
      <context:property-placeholder location="classpath:/application.properties" />
      
      <property name="myProperty" value="${myProperty.key.of.properties}" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-10
        • 2016-09-25
        • 2014-08-15
        • 1970-01-01
        • 2018-06-20
        • 1970-01-01
        • 2012-08-28
        • 1970-01-01
        相关资源
        最近更新 更多