如何在Spring 3.1 xml上下文中检索上下文参数

时间:2013-01-31 10:29:25

标签: spring tomcat servlets properties

似乎在春天有一些属性支持的迭代很难说出什么是最佳实践,并且从熟悉其他迭代的人的角度编写手册。我觉得这应该是一个简单而常见的要求,但考虑到有多难,请纠正我,如果有更惯用的方式。

我想要的是根据客户端使用tomcat描述符设置的上下文属性将其他属性文件传递给我的spring web应用程序

<Context path="/foo" reloadable="true">
  <Parameter name="foo.config" value="file:${catalina.base}/conf/foo.properties"/>
</Context>

春天的现场简介我有这个

<beans profile="live">
            <context:property-placeholder location="classpath:timetabling.live.properties,${timetabling.config}" 
    ignore-resource-not-found="true" />
</beans>

所以我认为这不起作用,因为我正在尝试使用占位符配置占位符suppport。如果我使用系统属性然后这工作正常。我知道Spring 3.1已经支持系统和环境属性了所以我想我的问题是如何在解决占位符之前用上下文感知来增强这种支持?

- 更新 -

特别是在脚注1处查看http://blog.springsource.org/2011/02/15/spring-3-1-m1-unified-property-management/,我希望有一个DefaultWebEnvironment,它应该已经具有上下文init参数。现在我更困惑,有人可以为我提供上下文属性检索的具体示例吗?在这一点上,我觉得我已经阅读了所有可用的javadoc并且它们没有帮助。

1 个答案:

答案 0 :(得分:0)

<context:property-placeholder />设置一个PropertyPlaceholderConfigurer,它从.properties,系统属性和环境变量中读取。但是,Tomcat context.xml会设置一个servlet上下文init参数。所以你需要的是ServletContextPropertyPlaceholderConfigurer