Spring启动外部application.properties
我正在开发一个spring boot应用程序
我想用外部文件覆盖src/main/resources/application.properties
一些属性(例如/etc/projectName/application.properties
)。
我尝试了几种方法:
-
@PropertySource("file:/etc/projectName/application.properties")
作为ApplicationConfig.java
注释 -
我的application.properties
resources
spring.config.location=/etc/projectName/application.properties
我用spring.port
测试了它。 第一种方法只添加了属性,但没有覆盖它们。
我总是在文档中指定的命令行中使用--spring.config.location=
,你可以在其中放入各种文件,一个是默认值,另一个是重写文件。
编辑:
或者,您也可以使用以下内容:
@PropertySources({ @PropertySource("classpath:default.properties") , @PropertySource(value = "file:${external.config}", ignoreResourceNotFound = true) })
并在application.properties中指定external.config
。
这将提供覆盖配置的默认路径,通过在命令行中指定--external.config
,它仍然可以覆盖。
我使用${external.config}
定义为系统env变量,但它也应该与application.properties变量一起使用。