日常开发和发布我们经常将 SpringBoot 的配置文件application.properties (或 application.yaml)直接放在项目目录下然后打包进 jar 包. 但是在很多时候, 我们可能因为 CI 需要或者安全管理需要集中管理配置文件, 这就涉及到外部配置文件的问题.
根据 SpringBoot 官方文档, 外部配置文件一般可以放到这4个地方:
/config /config
也就是:
这四者的优先级从 1 到 4 依次降低. 也就是说在上面四个目录下都放置 application.properties 文件, 会优先使用 1. java 命令执行的目录下的 config 目录
.
具体如下图所示, 在 target/
目录下通过 java -jar app.jar
启动项目, 配置文件的优先级从高到低依次是 (1) -> (4) :
target/ |- application.properties (2) |- config/ |- application.properties (1) |- app.jar |- application.properties (4) |- config/ |- application.properties (3)
另外我们可以通过 --spring.config.location=XXX
手动指定配置文件所在目录
cd target/ java -jar app.jar --spring.config.location=/data/config/springboot-sample/application.properties # 或者只给目录. 注意: 一定要以斜线`/`结尾 java -jar app.jar --spring.config.location=/data/config/springboot-sample/
或者目录不变, 只是自定义文件名 (通过 --spring.config.name=XXX
):
cd target/ java -jar app.jar --spring.config.name=myproject
更多配置请参考 官方文档 .