使用多个属性文件从PropertyPlaceholderConfigurer访问属性

时间:2011-09-01 14:38:00

标签: spring dependency-injection

我是春天(3.1)的新手并且完全被这个问题所困扰。 我试图使用在两个属性文件中定义的 PropertyPlaceholderConfigurer 来访问属性值“schdestination”(一个覆盖另一个)。

我想使用@Value在类中设置一个字段,而我却无法在不使用其他bean的情况下找到方法。这是我的spring XML代码段

<bean id="placeholderProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>/WEB-INF/abc.properties</value>
            <value>/WEB-INF/loc.abc.properties</value>
        </list>
    </property>
    <property name="ignoreUnresolvablePlaceholders" value="true" />
    <property name="order" value="1" />
</bean>

有什么线索吗?

3 个答案:

答案 0 :(得分:1)

@Value("${schdestination}")
private String destination;

应该有用。

答案 1 :(得分:0)

包含@Value的类需要使用@Component进行批注,并且您需要在applicationContext.xml中使用<context:component-scan/>

答案 2 :(得分:0)

您是否在自己的网络应用中使用它?那是我的情况。我正在从应用程序上下文加载属性文件,并且在某种程度上它们在Web应用程序包中是不可见的 - 控制器是精确的。我不得不在servlet-context.xml中重新声明它们,然后它们是可见的并且工作得很好。我真的希望有人可以解释可能发生的事情,或者是否真的是一个需要在Spring修复的问题。