springboot jar包外置配置文件的解決方法
為什么要搞個解決方案呢?按照網上教程,spring boot項目中,配置文件有優先級,其中,放在根目錄下的config文件夾中優先級最高;根目錄下次之;然后是resources/config/;resources/下優先級最低。而加載順序剛好反過來,resources/下最先加載,而/config/最后加載。然后在命令行方式下,指定一下這個配置文件的路徑,就可以了,云云。
也許事實就是如此的吧,但我試來試去,總不成功,系統死活都要讀resources/下,這個優先級最低的配置文件。
這對于用 jar包 方式運行的項目來說,就很痛苦了。每次部署的時候,都要將里面的配置文件替換,非常繁瑣。我不知道為什么我的JAR包用不了外置配置文件,也許是代碼里含有
@PropertySource(value = 'classpath:myconfig.properties',encoding = 'UTF-8')
這樣的語句;
又或許是含有
@Scheduled(cron = '${ins.ship-interval}')
這樣的語句。說起來也是心累,搞不清這里面的加載順序。
一時之間沒法解決,所以先換一種方式,每次運行系統前,用jar命令,將相應的配置文件替換jar包里的。
命令如下:
#將當前目錄下 BOOT-INF/classes/application.properties 替換 jar包里 BOOT-INF/classes/application.properties#這個命令也是醉了,為啥源文件與目標文件路徑要一致呢,可能是為了簡單吧jar uf spider-0.0.1-SNAPSHOT.jar BOOT-INF/classes/application.properties#好了,可以放心運行了java -jar spider-0.0.1-SNAPSHOT.jar
簡單粗暴,但還可以用。
到此這篇關于springboot jar包外置配置文件解決方法的文章就介紹到這了,更多相關springboot jar包外置配置文件內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: