1. 程式人生 > 實用技巧 >使用單獨Tomcat部署Spring boot應用時的多配置檔案切換

使用單獨Tomcat部署Spring boot應用時的多配置檔案切換

之前公司的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