how to configure single propery place holder for entire project

In my project, I have multiple context files.In that I am loading the property files using the property place holder like below.

Below are my context.xml files.

a.xml
       <bean
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="location" value="file:${conf.path}/devconfiguration.xml" />
        <!--<property name="location" value="file:${conf.path}/sitconfiguration.xml" />
            <property name="location" value="file:${conf.path}/uatconfiguration.xml" />
            <property name="location" value="file:${conf.path}/prodconfiguration.xml" />-->
        </bean>

b.xml
       <bean
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="location" value="file:${conf.path}/devconfiguration.xml" />
        <!--<property name="location" value="file:${conf.path}/sitconfiguration.xml" />
            <property name="location" value="file:${conf.path}/uatconfiguration.xml" />
            <property name="location" value="file:${conf.path}/prodconfiguration.xml" />-->
        </bean>

c.xml
       <bean
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="location" value="file:${conf.path}/devconfiguration.xml" />
        <!--<property name="location" value="file:${conf.path}/sitconfiguration.xml" />
            <property name="location" value="file:${conf.path}/uatconfiguration.xml" />
            <property name="location" value="file:${conf.path}/prodconfiguration.xml" />-->
        </bean>

While taking war file each time we are going to change all context files. Is their any way to have one property place holder for entire project.
I tried but I am not able to load property files without using property place holder bean. Any help will be greatly appreciated.

You can import definitions of b.xml and c.xml into a.xml

<beans> // a.xml
...
    <import resource="classpath:b.xml"/>
    <import resource="classpath:c.xml"/>

Now all definitions of b.xml and c.xml will be available in a.xml

and you can just define them combined in any of xml’s

<context:property-placeholder
location="classpath:a.properties,
          classpath:b.properties,
          classpath:c.properties"
ignore-unresolvable="true"/>

or if you are not using context namespace

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:a.properties</value>
                <value>classpath:b.properties</value>
                <value>classpath:c.properties</value>
            </list>
        </property> 
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
    </bean>

If I understand the scenario correctly, you have 3 configs for each environment? Maybe regional, and you switch between the different xml files.

What you should do instead is have just one xml file, that resolves to properties in a properties file.

You have one properties file per environment in your resources folder.

At startup you can then pass a jvm argument to set the “region” or way you identify the environment which will then “fill” your xml where there are placeholders to the values in the properties files.

This site should help you get started.