如何在Spring中读取具有相同键的多个属性?

Jea*_*art 7 java spring

我在这里遇到一个简单的问题.我有两个属性文件我想读取来创建两个数据源.然而,那些属性文件具有完全相同的键!我可以使用以下方法读取这两个文件:

<context:property-placeholder 
    location="classpath:foo1.properties,classpath:foo2.properties"/>
Run Code Online (Sandbox Code Playgroud)

但后来我无法访问正确的值:

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName" value="${driver}" /> <!-- Which one? -->
    <property name="url" value="${url}" />                <!-- Which one? -->
    ...
</bean>
Run Code Online (Sandbox Code Playgroud)

如何读取我的属性,以便我可以使用变量,如${foo1.driver}知道哪个被调用?

谢谢你的帮助!

Luc*_*uca 6

尝试这样的事情(未经测试):

<bean id="config1" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
       <property name="ignoreUnresolvablePlaceholders" value="true"/>
       <property name="placeholderPrefix" value="${foo1."/>
       <property name="locations">
        <list>
          <value>classpath:foo1.properties</value>
        </list>
      </property>
    </bean>

    <bean id="config2" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
       <property name="ignoreUnresolvablePlaceholders" value="false"/>
       <property name="placeholderPrefix" value="${foo2."/>
       <property name="locations">
        <list>
          <value>classpath:foo2.properties</value>
        </list>
      </property>
    </bean>
Run Code Online (Sandbox Code Playgroud)