Java 组合上下文:属性重写和PropertyPlaceHolderConfigure

Java 组合上下文:属性重写和PropertyPlaceHolderConfigure,java,spring,Java,Spring,我对以下Spring上下文配置文件有问题: ... <context:property-override location="classpath:query_1.properties" /> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="lo

我对以下Spring上下文配置文件有问题:

...
   <context:property-override location="classpath:query_1.properties" />
        <bean
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="locations" value="classpath:query_2.properties" />
        </bean>
....
现在我的问题是:context:property override和propertyplaceholderconfigure的组合是否可能毫无意义?有人能用简单的语言解释一下两者的区别吗?任何帮助都将不胜感激


Thx。Horace

属性占位符,通常使用
定义,解析bean定义中的占位符:

例如

<bean name="myclass" class="MyClass">
    <property name="prop1" value="${prop1val}/>
</bean>
然后它将在bean
myclass
中被替换

另一方面,使用
定义的pPertyOverrideConfigurater就像一个推送机制,属性的形式是
beanname.property
,它将这个属性推送到名为
beanname
的bean中

例如,对于上述情况,如果该位置的属性为:

myclass.prop1=aval
然后它将注入
myclass
bean的
prop1

您得到的异常只是表明它无法找到
query_2.properties
文件,我怀疑这是否是任何其他配置问题


如果两者都已定义,则其中一个将生效,我认为最后一个将生效。

属性占位符,通常使用
定义,解析bean定义中的占位符:

例如

<bean name="myclass" class="MyClass">
    <property name="prop1" value="${prop1val}/>
</bean>
然后它将在bean
myclass
中被替换

另一方面,使用
定义的pPertyOverrideConfigurater就像一个推送机制,属性的形式是
beanname.property
,它将这个属性推送到名为
beanname
的bean中

例如,对于上述情况,如果该位置的属性为:

myclass.prop1=aval
然后它将注入
myclass
bean的
prop1

您得到的异常只是表明它无法找到
query_2.properties
文件,我怀疑这是否是任何其他配置问题

如果两者都被定义,我认为最后一个将生效