动态更改属性占位符文件位置

时间:2018-11-20 16:31:03

标签: java spring

我正在尝试将我的数据库连接配置为在多个环境中运行。重要的是要注意我对Spring缺乏实践经验。

假设我的xml中有一个bean,如下所示:

roleUserID

适当的占位符:

  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>>

但是,我想拥有多个属性文件(db2.properties,db3.properties等),每个环境文件一个,每个文件将包含完全相同的字段(用户名,密码等)。 ),但具有不同的值(请考虑这些文件针对特定环境的数据库连接的不可变表示形式。

我想要一个“主”属性文件,该文件将指向在当前环境中使用的正确文件。它可能看起来像这样:

<context:property-placeholder location="classpath:db1.properties"/>

因此,为了在环境中使用正确的连接,我只需要手动/使用外部程序/服务器来编辑env.DBConnection字段。

如何从此主文件中将要使用的正确属性文件注入到上下文xml中?

在搜索中,我看到了类似的内容:

env.DBConnection=db1.properties

但是我知道这只能与系统变量一起使用。进一步查看从属性文件中定义系统变量使我意识到,对于一个合理的解决方案来说,它太麻烦了……

是否有实现此目标的明智方法?也许我缺少一种完全不同的方法?

0 个答案:

没有答案