1

搜索了其他一些帖子,但找不到我需要的确切内容,但我想这是一个简单的问题..

所以我有一个名为 myprops.properties 的属性文件

myprops.localProp1=localProp1
myprops.localProp2=localProp2
myprops.systemProp=${systemPropertyName}

基本上,在这个属性文件中,我想使用 localProp1 和 locapProp2 的值,但对于 systemProp,我想加载系统属性。让我们假设系统属性总是被设置。

我的弹簧配置 xml 看起来像这样......

<bean id="myprops" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <qualifer value="myprops" />
    <property name="singleton" value="true"/>
    <property name="ignoreResourceNotFound" value="true" />
    <property name="locations">
        <list><value>classpath:myprops.properties</value></list>
    </property>
</bean>

我使用限定符自动装配此 bean,并使用限定符字符串“myprops”在另一个类中访问它。除了 myprops.systemProp,所有预期值都在那里,它仍然 = ${systemPropertyName}。

我将如何使用实际的系统属性来解决此属性?

我在我的弹簧配置中尝试了以下内容:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="properties" ref="myprops" />
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
</bean>

这似乎没有帮助..

有任何想法吗?我希望这是一个简单的,我只是误解了属性配置中的一个常见概念。

注意:我必须手动输入所有无法复制/粘贴的代码,所以请原谅拼写错误。

谢谢。

4

0 回答 0