2014-12-03 184 views
4

我已經使用Spring Boot已經有幾個星期了,而且我已經習慣使用application.properties文件。我可以將它用於簡單部署,並可與java jarmvn spring-boot:run一起使用。Spring Boot - 部署到Tomcat時將屬性文件放在哪裏?

現在我試圖將我的應用程序部署到Tomcat 8.0.15應用程序服務器。我一直在閱讀文檔,但我無法部署war文件,因爲Tomcat無法找到這個着名的application.properties文件。我的觀點是,如果我想將這個文件從war中刪除,那麼在我的Tomcat安裝中,我應該把它放到它自動讀取的位置嗎?

回答

5

如果以後不想更改它,只需將其放入類路徑的根目錄中即可如果它的Maven項目,然後裏面

<project-folder>/src/main/java/ 

如果你想改變它,後來沒有重建WAR然後在Tomcat的屬性文件

catalina.properties 

shared.loader= 

,使得上市後的屬性文件等號可供部署的應用程序訪問。更好地使用絕對路徑。

順便說一下,我會選擇現在使用基於註解的配置,但是如果沒有重建WAR,它就不會有改變的舒適感。

2

春天從

1) A /config subdir of the current directory. 
    2) The current directory 
    3) A classpath /config package 
    4) The classpath root 

加載性能請參閱該文檔(23.2應用程序屬性文件): http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config-application-property-files

這應該以同樣的方式爲戰爭(類路徑根一個看起來最適合我)。

+1

謝謝你,你的回答幫助我把我的屬性文件放在正確的地方,讓它被我的應用程序加載。但它沒有回答我原來的問題。我的主要問題是如何將其外化。 – mrik974 2014-12-03 10:38:02

1

您可以在catalina.sh/catalina.batch或setEnv.bat/setEnv.sh中提供屬性文件的位置作爲「JAVA_OPTS」的一部分。 set JAVA_OPTS = -Dspring.config.location = file:/ D:/Appconfig/application.properties

僅供參考:如果外部戰爭和定義像上面那樣,application.yaml將不會被spring啓動加載。

相關問題