我已在Spring
應用程序中定義了屬性。如何用Tomcat重寫spring property param?
@Configuration
public class WebappConfiguration {
@Value("${ext.storage.path}")
private String extDirectoryPath;
public String getExtDirectoryPath() {
return extDirectoryPath;
}
}
爲ext.storage.path
屬性的默認值在application.properties
文件中定義。
application.properties
ext.storage.path=/home/user/ext/
當我部署WAR
到Tomcat VM選項-Dext.storage.path=/var/webapp-data/
,這個值被成功加載。但是我希望從每個環境的上下文文件中加載更明智的屬性值。
因此,我部署了WAR
到Tomcat的ROOT
,WAR文件的名稱是ROOT.war
,它被分解到ROOT
目錄。我在以下內容的路徑{CATALINA_BASE}/Catalina/localhost/ROOT.xml
上創建了context
文件。
的ROOT.xml
<Context
docBase="/opt/webapp-tomcat/webapps/ROOT.war"
path=""
reloadable="true">
<Parameter name="ext.storage.path" value="file:/var/webapp-data/" override="true"/>
</Context>
不幸的是,根據道路的參數是不加載,它已經從application.properties
默認值。
編輯: 一個小調查後,我把Parameter
到主context.xml
文件的Tomcat的和值將被覆蓋。
<Parameter name="ext.storage.path" value="file:/var/webapp-data/" override="true"/>
試着把它放在JNDI中,而不是一個參數。它應該仍然會查找。您可能想要爲彈簧啓用調試/跟蹤日誌記錄,這樣可以查看加載位置和諮詢位置。 –