我需要为我们的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