使用單獨Tomcat部署Spring boot應用時的多配置檔案切換
阿新 • • 發佈:2020-07-16
之前公司的springboot專案直接用內建的tomcat容器來啟動,因此要實現spring配置檔案切換直接在啟動服務的時候加-Dspring.profiles.active
引數就可以切換yml裡的配置了,比如:
application.yml檔案:
spring:
profiles.active: oracle-test
---
spring:
profiles: mysql-test
---
spring:
profiles: oracle-test
---
spring:
profiles: oracle-pro
java -Duser.timezone=Shanghai -Dspring.profiles.active=oracle-test -jar XX.jar
可是現在新起的一個專案要把前端程式碼和後端程式碼部署到一個tomcat裡,上面方法不能用了,研究了一下可以通過修改tomcat/bin資料夾裡的catalina.sh檔案(windows系統為catalina.bat)來實現。詳細如下:
因為不同tomcat版本對應程式碼的行數不同,直接開啟檔案搜尋JAVA_OPTS,找到類似如下部分:
# Register custom URL handlers # Do this here so custom URL handles (specifically 'war:...') can be used in the security policy JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
在後面新增-Dspring.profiles.active=$2 ,把第二個引數作為spring配置檔名:
# Register custom URL handlers # Do this here so custom URL handles (specifically 'war:...') can be used in the security policy JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dspring.profiles.active=$2"
儲存然後後面啟動tomcat的時候指定引數就可以了,不指定引數就會使用預設配置檔案:
./catalina.sh run oracle-pro