如何使用 spring 应用上下文 xml 文件中的一些参数调用 java 方法
How to invoke java method with a few parameters inside spring app context xml file
我尝试配置我的 spring 应用程序。
我需要像这样定义 属性 占位符:
<context:property-placeholder
location="classpath:ov.properties,file:#{appServerUrl.replaceFirst('regexp','')}/test.properties"
ignore-resource-not-found="true" />
但结果是 org.springframework.expression.ParseException: Expression 'file:#{appServerUrl.replaceFirst(''' @ 5: No ending suffix '}' for expression starting at character 5
如果我仅使用一个参数或不使用参数调用 java 方法,它都可以正常工作。怎么了?谢谢回复。
<context:property-placeholder/>
元素的解析器首先使用 StringUtils.commaDelimitedListToStringArray(String)
拆分 location
属性的值。这就是为什么将您的第二个位置一分为二的原因。
为了避免这种情况,您可以使用第二个位置的值定义一个 String
bean:
<bean name="testPropertiesLocation" class="java.lang.String">
<constructor-arg value="file:#{appServerUrl.replaceFirst('regexp','')}/test.properties" />
</bean>
然后像这样使用它:
<context:property-placeholder
location="classpath:ov.properties,#{testPropertiesLocation}"
ignore-resource-not-found="true" />
我尝试配置我的 spring 应用程序。 我需要像这样定义 属性 占位符:
<context:property-placeholder
location="classpath:ov.properties,file:#{appServerUrl.replaceFirst('regexp','')}/test.properties"
ignore-resource-not-found="true" />
但结果是 org.springframework.expression.ParseException: Expression 'file:#{appServerUrl.replaceFirst(''' @ 5: No ending suffix '}' for expression starting at character 5
如果我仅使用一个参数或不使用参数调用 java 方法,它都可以正常工作。怎么了?谢谢回复。
<context:property-placeholder/>
元素的解析器首先使用 StringUtils.commaDelimitedListToStringArray(String)
拆分 location
属性的值。这就是为什么将您的第二个位置一分为二的原因。
为了避免这种情况,您可以使用第二个位置的值定义一个 String
bean:
<bean name="testPropertiesLocation" class="java.lang.String">
<constructor-arg value="file:#{appServerUrl.replaceFirst('regexp','')}/test.properties" />
</bean>
然后像这样使用它:
<context:property-placeholder
location="classpath:ov.properties,#{testPropertiesLocation}"
ignore-resource-not-found="true" />