我需要爲我們的spring項目開發和生產設置。我知道你可以使用春天的個人資料,但這不是我們能做的事情。基於tomcat servlet上下文定義的spring加載application.properties
我想要做的就是在開發環境中放置一個test-application.properties文件,並在生產環境中放置一個prod-application.properties文件。在Tomcat上下文定義我們發送以下內容:
<Context>
<context-param>
<param-name>properties_location</param-name>
<param-value>file:C:\Users\Bill\test-application.properties</param-value>
</context-param>
</Context>
而且我們可以改變生產服務器的價值。在Spring配置,我們有這樣的事情:
<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="locations">
<list>
<value>${properties_location}</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="false" />
</bean>
但是我們不斷收到這樣的錯誤:
org.springframework.beans.factory.BeanInitializationException:難道 無法加載性能;嵌套的例外是 java.io.FileNotFoundException:無法打開ServletContext的資源 [/ $ {properties_location}]
上的任何想法如何解決?
我做了同樣的事情,但忘記了ignoreResourceNotFound。現在工作。感謝你的回答! – checklist 2012-07-31 09:56:36
另外,由於您指示了SYSTEM_PROPERTIES_MODE_OVERRIDE,所以在java調用時使用-D指定的任何屬性都將覆蓋在屬性文件中找到的內容,因此'java -Duser.name = ted ...'將優先。使用ignoreResourceNotFound,屬性文件也可以選擇性地不存在,而不會拋出異常。 – 2015-03-19 23:22:18