对于我正在进行的项目,我们正在编写一个Spring ProperytPlaceholderConfigurer的自定义扩展,它可以执行一些特殊的自定义逻辑。此逻辑的一部分是它转到远程Web服务以请求要使用的属性。我正在尝试将其配置为使用系统属性来指定Web服务的详细信息以从中获取正确的属性,并且我无法正确替换系统属性。
我的春季定义如下:
<bean id="properties" class="my.custom.project.package.EnvironmentServicePropertyPlaceholderConfigurer">
<property name="environmentServiceLocationBase" value="${environmentServiceLocation}" />
<property name="environmentName" value="${environmentName}" />
<property name="environmentServiceHost" value="${environmentServiceHost}" />
</bean>
然后,这些属性的值在内部用于配置器,以生成提供属性的服务的URL。但是,它们不会被实际的系统属性值替换,而是我的URL包含上面的字符串,而$ {}仍然存在。
我发现如果我创建类型为Resource而不是String的bean属性,那么它们会被正确替换,但这对我来说没什么用处......
到目前为止我尝试过的事情:
所有这些都需要在Spring 2.5.6中运行,因为我们还没有升级到Spring 3(很快,但还没有)
对我遗失的事情有任何建议吗?我确信这应该是彻头彻尾的琐碎,但我不能让它发挥作用......