Spring属性占位符配置需要在运行时动态替换

时间:2017-04-16 18:07:04

标签: java spring

我在春天有一个属性类持有者配置

<context:property-placeholder location="classpath:${appConfig}" />

我的类路径dev.properties,qa.properties和prod.properties中有三个配置

我需要传递appConfig,它应该替换为我在运行时动态传递的值

当我这样做java -jar application.jar -DappConfig = dev.properties时,替换appConfig与dev.properties失败。

1 个答案:

答案 0 :(得分:2)

您可以使用Code-OSS.exe并相应地命名属性文件以访问它们,例如:

${spring.profiles.active}

这样,您可以在类路径中显示<context:property-placeholder location="classpath:${spring.profiles.active}.properties" /> dev.properties等,并根据配置的配置文件选择相应的文件。

<强>更新

您可以在运行应用时将配置文件值作为命令行参数传递,例如stage.properties