某些屬性已包含在屬性文件中,由Spring的ApplicationConfiguration文件(基於java的配置)引用。這些主要是url和數據庫屬性,這些屬性會根據部署環境而有所不同。構建之後,部署之前的屬性文件配置
該計劃是將屬性文件放在類路徑中。 builld(詹金斯)拍攝後,我將如何更改屬性文件。我應該能夠更改屬性文件並在相應的環境中再次部署它,而無需進行新的構建。有什麼建議嗎?
某些屬性已包含在屬性文件中,由Spring的ApplicationConfiguration文件(基於java的配置)引用。這些主要是url和數據庫屬性,這些屬性會根據部署環境而有所不同。構建之後,部署之前的屬性文件配置
該計劃是將屬性文件放在類路徑中。 builld(詹金斯)拍攝後,我將如何更改屬性文件。我應該能夠更改屬性文件並在相應的環境中再次部署它,而無需進行新的構建。有什麼建議嗎?
Spring文檔提供了大量的細節在你的選擇的外部化配置:
http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
可用的包括放置在你的classpath的根application.properties
/application.yml
選項,因此最簡單的方法可能是將它在你的tomcat conf
目錄中。
謝謝。我也這樣做。把它放在tomcat的conf目錄下。我在我的Spring配置文件中使用了 @PropertySource(「classpath:application.properties」)。但是,然後得到以下錯誤: java.io.FileNotFoundException:類路徑資源[application.properties]無法打開,因爲它不存在。我還能如何檢索它? – Chillax
如果Tomcat的conf目錄不在您的應用程序的類路徑中,可以使用'file:'和全限定目錄進行測試。除此之外,也許要確保'catalina.properties'加載你的環境屬性文件。請參閱:https://www.mulesoft.com/tcat/tomcat-classpath – Steve
我建議這個aproximation:Override Properties file in Spring WebApp at Runtime
你只需要一些東西來指向您的文件。我使用了一個JNDI屬性。 我認爲改變環境之間的戰爭是一個非常糟糕的主意。
將屬性文件放在tomcat的conf目錄下。該路徑應該在它的類路徑中 – Jens
您是否在尋找比手動更換jar/war內的文件更復雜的東西(這是一個ZIP文件,所以任何archiever都會這樣做)。如果是這樣,你的要求是什麼? –
@JiriTousek號所以我只需要把戰爭文件,解壓縮,編輯屬性文件,然後再壓縮它?但是我認爲將它作爲tomcat屬性的一部分會更方便,這樣部署團隊可以根據環境來處理這個問題嗎? – Chillax