从命令行覆盖application.properties文件中的值

时间:2016-10-25 06:31:28

标签: java spring tomcat

我在java web应用程序中有apllication.properties文件,其中包含这些属性。

spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:19095/test
spring.datasource.username=test
spring.datasource.password=test123

但我想在启动tomcat服务器时覆盖这些属性(driverClassName除外)。 我试图从命令行设置这些变量,但它不起作用。

tomcat版本:7.0.63

1 个答案:

答案 0 :(得分:0)

为什么不使用具有系统参数指定的config目录的属性占位符:

<context:property-placeholder location="file:${configLocation}/database.properties:defaultDatabase.properties" />

然后用:

启动tomcat
-DconfigLocation=/opt/config

请参阅http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/PropertySource.html以及Loading property file from system properties with default path in Spring context