2017-08-23 57 views
1

當我使用可執行.jar我的項目,我可以把我的application.properties文件放到同一文件夾中我.jar,我的所有屬性值將延長application.properties文件中讀取。獨立application.properties爲Tomcat容器

我的問題是:有可能使這樣的.wartomcat服務器?

[更新]

答案是:在獨立的Tomcat,你將不得不把一個application.properties<tomcat>/bin

由於@Strelok

回答

3

您可以運行與spring.config.location屬性設置您的應用程序到使用file:協議的文件路徑:

# will look for /etc/myapp/application.properties 
-Dspring.config.location=file:/etc/myapp/ 

# will look for /etc/myapp/custom.properties 
-Dspring.config.location=file:/etc/myapp/custom.properties 
個 那些總是搜索

預設配置位置:

  1. 文件:./配置/
  2. 文件:./
  3. 類路徑:/配置/
  4. 類路徑:/

Spring Boot的文檔Externalized Configuration部分有更多信息。

+0

如果春季檢查'文件:/'(與'.war'相同的文件夾)爲什麼當我把我的配置那裏(在tomcat服務器內),我的應用仍然得到來自編譯配置的數據(在'.war'內部)?但是對於可執行文件'.jar',它工作正常 –

+1

Tomcat從war文件運行應用程序和'waroded'文件夾,而不是直接從war文件運行。 – Strelok

+0

如果我把'app.war'放到'webapps'中,我應該放'application.properties'文件? –

1

請參閱適用於您的Tomcat版本的Tomcat類加載器,以瞭解所有類加載器都可用。根據這一點,您可以將應用程序屬性文件添加到Shared或Common類加載器,方法是將其保存在適當的目錄中,並將該目錄添加到catalina.properties文件中的類加載器條目中。 Tomcat 7文檔不顯示共享類加載器,但catalina.properties確實有佔位符。如果共享的工作,去那,而不是共同Tomcat 7 Classloader

+0

你的意思是我可以把我的'application.properties'放到任何文件夾中,將這個文件夾的路徑添加到'catalina.properties'文件,tomcat會從我的配置文件中讀取我的env屬性? –

+1

是的。檢查catalina.properties,會有像'shared.loader ='和'common.loader'這樣的佔位符。如果共享不起作用,則優先使用'shared.loader'並回退到'common.loader'。請不要更改'server.loader'。 – Gautam