Property-placeholder默认值分隔符

时间:2012-11-14 12:31:12

标签: spring configuration properties placeholder

小问题。 我们使用Spring 3.1并且似乎遇到了值分隔符的问题(默认值是)。

<context:property-placeholder ignore-resource-not-found="false" ignore-unresolvable="false" location="${app-conf-base-path:classpath:}environment/app-conf-${spring.profiles.active:test}.properties" />

我们根据maven环境配置文件过滤部署的属性。如果未提供maven环境配置文件,则所有环境属性文件将在war中加载并放在类路径中。 使用弹簧配置文件在运行时加载实际环境特定设置。给我们一个问题的部分是$ {app-conf-base-path:classpath:}因为看起来他无法解决这个问题。我相信这是因为占位符是使用最后一次出现的默认值分隔符进行拆分的。 我们为什么要这样做是因为我们希望他查看app-conf-base-path,除非未将其定义为JVM参数。在那种情况下,他应该查看类路径。

我试过了:

  • 占位符配置器带有值分隔符==&#39;?&#39;无济于事。

任何人都有了另类的想法吗?

1 个答案:

答案 0 :(得分:0)

我通过确保在加载它的类加载器时将外部配置文件添加到服务器的类路径中来解决问题。这样我就不需要占位符指向文件://类型位置。 我在tomcat的setclasspath.sh中添加了一个导出行,将外部文件添加到环境变量CLASSPATH中。