spring boot環境切換失效
概述
最近在使用-Dspring.profiles.active=te 來切換spring-boot的環境時,發現日志打印的是:
1
2
|
...ApplicationStartUp - The following profiles are active: de |
也就是說,參數失效了。
debug調試時,發現spring-boot讀取的也是de,不是te。
解決
下載了一個新的tomcat,然后重新發布程序,設置參數,啟動,發現環境正常切換了過來。
springboot多環境配置文件無效
springboot配置文件無效
這個坑必須發出來,真是惡心!不管是yml還是properties格式配置文件都有這問題。
- application.properties
1
|
spring.profiles.active=dev |
- application-dev.properties
1
2
|
server.port= 9000 server.context-path=/h2 |
這個application-dev.properties的第一行必須是注釋或者為空,否則里面配置無法解析。
也就是第一行不能頂格寫!
如下兩種寫法是正確的:
1
2
3
4
5
|
server.port= 9000 server.context-path=/h2 # 第一行必須為空或者注釋 server.port= 9000 server.context-path=/h2 |
如果不這樣,你的application-dev.properties就是廢物,一點用都沒有,監聽端口還是默認的8080,但是第二行及以后的配置可以正常解析到。
因為當啟用了多環境配置后,環境配置文件比如application-dev.properties,springboot框架的代碼實現邏輯就強行占用了第一行,這個占用一點用處都沒有。springboot就是這么霸道,就是要占用第一行,你能怎么樣,有本事你也寫個springboot,從第18行開始解析配置。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/limenghua9112/article/details/79608257