天天看點

SpringBoot war包如何自定義配置application檔案的位置

此篇文章的真正目的應該是關于war包運作在獨立tomcat下時,應如何在war包外部配置application.properties,以達到每次更新war包而不用更新配置檔案的目的。

百度搜素SpringBoot配置檔案,基本上會得到如下資訊:

SpringBoot配置檔案可以放置在多種路徑下,不同路徑下的配置優先級有所不同。

可放置目錄(優先級從高到低)

1.file:./config/ (目前項目路徑config目錄下);

2.file:./ (目前項目路徑下);

3.classpath:/config/ (類路徑config目錄下);

4.classpath:/ (類路徑config下).

優先級由高到底,高優先級的配置會覆寫低優先級的配置;

SpringBoot會從這四個位置全部加載配置檔案并互補配置;

想要滿足不更新配置檔案的做法一般會采用1 和 2,但是這些對于運作在獨立tomcat下的war包并不比作用。

我這裡采用的是SpringBoot的Profile配置。

在application.properties中增加如下配置:

spring.profiles.active=test1
           

再在tomcat根目錄下建立一個名為config的檔案夾,建立一個名為application-test1.properties的配置檔案。

完成該步驟後,Profile配置已經完成了。

然後還需要将剛剛建立的config檔案夾添加到tomcat的classpath中。

打開tomcat中catalina.properties檔案,在common.loader處添加**${catalina.home}/config**,此處的config即之前建立的檔案夾名稱。

如此,大功告成。程式啟動之後,每次配置檔案都會從config/application-test1.properties加載。