2016-11-13 76 views
0

我有一個使用註釋配置的Spring Boot應用程序。我擁有application.properties和application- {profile} .properties文件,其中已有數據。問題是我現在想要在Tomcat 6服務器上定義WAR外部位置,我可以將配置文件優先於。也就是說,我放入這些屬性文件中的任何設置都應該勝過application.properties或application- {profile} .properties中的任何值。如何將外部屬性文件位置添加到部署到tomcat 6的Spring Boot應用程序?

我怎樣才能以最簡單的方式完成這件事?

我已經嘗試添加@PropertySources但在屬性文件順序中具有較低的優先級,因此這不是一個可行的解決方案。我可以輕鬆更改屬性文件加載順序嗎?

無法將環境變量添加到服務器,因爲這可能會影響其他已部署的應用程序。 WAR必須是獨立的並且提供它所需的一切(除了這個外部屬性覆蓋文件)。

+0

因此,您是在Tomcat 6服務器上部署應用程序?那你爲什麼要用Spring-Boot呢? –

+0

因爲是2016年? :)最有可能的是,tomcat服務器將在不久的將來升級。但我現在需要一個解決方案。 –

+0

只是使用Spring Boot,因爲它是2016年沒有理由。 Spring Boot基本上是用集成服務器來連接一個完整的環境,那麼爲什麼要使用額外的tomcat 6呢? –

回答

1

你可以配置spring.config.locationas described in the doc或者你可以實現一個EnvironmentPostProcessor如果你希望它適用於任何。

在此university session at Devoxx中有一個示例,其中we showcase how to read a file from the home directory並將其添加到命令行屬性之後。你可以做幾乎相同的事情,按照你想要的方式排列。

如果您想嘗試一下,示例應用程序是available here

+0

spring.config.location只能用一個環境變量(不能用於我上面解釋的)或輸入參數來改變,我不認爲這個參數適用於Tomcat(我可能是錯的)。 –

+0

但後處理環境聽起來很有希望。我正在研究它。 –

+0

查看示例,插入我自己的屬性文件(如果存在)很容易。謝謝! –

相關問題