英文:
Spring 3.5 Setting an xml property, handling the default value using PropertyPlaceholderConfigurer
问题
我正在使用 Spring 3.5 和 XML 配置处理一个旧项目。
在应用程序上下文中,我正在将属性设置为外部配置的 XML 文件值,类似于这样 -
<bean id="myService" class="com.mypath.MyService">
<property name="myProperty" value="${myValue}:myDefaultValue" />
</bean>
这一切都正常工作。
然而,在一些测试中,会涉及一个 test-context.xml 文件,用于设置属性的值,就像这样 -
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="properties">
<util:properties>
<prop key="myProperty">myValue</prop>
</util:properties>
</property>
</bean>
这在“理解”默认值方面存在问题。如果我将值保留为空白,会返回 :myDefaultValue。如果我设置 myValue,就像我示例中所示,会返回 myValue:myDefaultValue。
我简要查看了 PropertyPlaceholderConfigurer,它看起来非常基础,没有太多选项。我以前没有使用过它。是否有人知道是否有一种简单的方法来处理默认值?或者我是否必须使用其他方法来设置测试上下文值?
英文:
I'm working with an old project using Spring 3.5 and xml config.
In the application context I am setting a property to an externally configured xml file value so something like this -
<bean id="myService" class="com.mypath.MyService">
<property name="myProperty" value="${myValue}:myDefaultValue" />
</bean>
This all works properly.
In some tests though there is a test-context.xml coming into play which sets the values of the properties like this
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="properties">
<util:properties>
<prop key="myProperty">myValue</prop>
</util:properties>
</property>
</bean>
This is failing to 'understand' the default value. If I leave the value blank I get :myDefaultValue returned. If I set myValue like my example shows I get myValue:myDefaultValue.
I had a quick peak at the PropertyPlaceholderConfigurer and it looks very basic without many options. I've not used it before. Does anyone know if there is a simple way for me to handle the defaults ? Or maybe I have to use a different method to set the test context values ?
答案1
得分: 1
你的语法有些错误。表达式的默认值放在大括号内,像这样:${myValue:defaultValue}
。
英文:
You have your syntax slightly off. The default value for the expression goes inside the braces, like so: ${myValue:defaultValue}
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论