繁体   English   中英

Spring PropertyPlaceholderConfigurer注入了错误的值

[英]Wrong value injected with Spring PropertyPlaceholderConfigurer

我有两个属性文件:

prop1.properties:
prop1.sample=value123

prop2.properties:
prop2.sample=value234

当我将这些属性值注入两个“ InjectValues” bean时,一切都将以适当的方式工作。 但是,当我想将一个PropertyPlaceHolder中的值注入到另一个仅扩展PropertyPlaceHolder的类中时,则代替值,按如下所示插入键。

<bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location">
        <value>file:C:\test\prop1.properties</value>
    </property>
    <property name="placeholderPrefix" value="${" />
    <property name="placeholderSuffix" value="}" />
</bean>

<bean id="propertyConfigurerNew"
    class="com.test.spring.property.EncryptedPlaceHolder">
    <property name="location">
        <value>file:C:\test\prop2.properties</value>
    </property>
    <property name="key" value="${prop1.sample}" /> <!-- Value "${prop1.sample}" is injected instead of value123 -->
    <property name="placeholderPrefix" value="#[" />
    <property name="placeholderSuffix" value="]" />
</bean>

<bean id="injectValues"
    class="com.test.spring.property.InjectValues">
    <property name="value1" value="${prop1.sample}" /> <!-- Correct value "value123" is injected -->
    <property name="value2" value="#[prop2.sample]" /> <!-- Correct value "value234" is injected -->
</bean>

看来PropertyPlaceHolders无法替换其他PropertyPlaceHolders中的占位符,因为它们在注释中提到的同一阶段执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM