springboot項目打成jar包,默認讀取的classpath路徑下的配置文件,config.properties是自定義配置文件。java
若是要把config.properties配置放在jar包外面,方便修改配置,spring
1.在啓動類或者配置類上添加@PropertySource註解,value參數配置掃描路徑,能夠爲多個,當ignoreResourceNotFound爲true時,項目啓動的時,先從第一個路徑去找配置文件,若是找不到,再從第二個路徑去找,以此類推...springboot
@Data @Component @ConfigurationProperties @PropertySource(value = {"classpath:config.properties","file:${spring.profiles.path}/config.properties"},ignoreResourceNotFound = true) public class ConfigBean { }
spring.profiles.path:config.properties文件所在的路,能夠在application.yml配置,app
不過爲了方便,spring.profiles.path通常在jar包啓動的時候傳入:spa
java -jar xxx.jar --spring.profiles.path=xxx
這樣,jar啓動的時候根據傳入的參數去讀取自定義配置文件.net
springboot讀取外部配置文件的方法,以下優先級:
第一種是在執行命令的目錄下建config文件夾。(在jar包的同一目錄下建config文件夾,執行命令須要在jar包目錄下才行),而後把配置文件放到這個文件夾下。
第二種是直接把配置文件放到jar包的同級目錄。
第三種在classpath下建一個config文件夾,而後把配置文件放進去。
第四種是在classpath下直接放配置文件。
springboot默認是優先讀取它自己同級目錄下的一個config/application.properties 文件的。
在src/main/resources 文件夾下建立的application.properties 文件的優先級是最低的code
因此springboot啓動讀取外部配置文件,只須要在外面加一層配置文件覆蓋默認的便可,不用修改代碼。blog
文章轉載至:https://blog.csdn.net/wsgsm/article/details/83274362get