在spring上下文中定义一个字符串

时间:2011-07-11 15:32:09

标签: spring

我有三个(A,B,C)spring context.xml,A用于基本配置,B和C用于导入A.

在A的豆子里我有:

<bean class="com.example.Ex">
    <property name="aString" value="${myString}" />
</bean>

现在我想在B和C上下文中定义属性myString,可以在没有create的情况下执行它并加载两个不同的属性文件吗?

3 个答案:

答案 0 :(得分:51)

您可以通过声明String类型的bean来尝试另一种方法,而不是处理Properties。

这样:

A

<bean class="com.example.Ex">
    <property name="aString" ref="str" />
</bean>

然后你在B和C语境中用这种方式声明“str”引用:

<bean id="str" class="java.lang.String">
  <constructor-arg value="string_1"/>
</bean>

C

<bean id="str" class="java.lang.String">
  <constructor-arg value="string_2"/>
</bean>

答案 1 :(得分:7)

为了完整性,这里有另一种创建字符串的方法:

不是调用强制不必要地创建新对象的String构造函数,而是使用valueOf方法,这可以作为一个&#34;什么都不做&#34;构造:

Unresolved variable fields at line 106

然而,这只是学术上的,因为解析附加XML属性的开销也会导致创建字符串的开销大于调用valueOf而不是构造函数的性能增益。

答案 2 :(得分:-8)

这也是其中一种方式。

<bean id="str" class="com.example.Ex">
<constructor-arg type="java.lang.String" value="INDIA"/>