我有三个(A,B,C)spring context.xml,A用于基本配置,B和C用于导入A.
在AI上的bean有:
<bean class="com.example.Ex">
<property name="aString" value="${myString}" />
</bean>
现在我想在B和C上下文中定义属性myString,是否可以在没有创建的情况下执行它并加载两个不同的属性文件?
Mr.*_*art 54
您可以通过声明String类型的bean来尝试另一种方法,而不是处理Properties.
这条路:
一个
<bean class="com.example.Ex">
<property name="aString" ref="str" />
</bean>
Run Code Online (Sandbox Code Playgroud)
然后在B和C上下文中以这种方式声明"str"引用:
乙
<bean id="str" class="java.lang.String">
<constructor-arg value="string_1"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
C
<bean id="str" class="java.lang.String">
<constructor-arg value="string_2"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
为了完整性,这里有另一种创建字符串的方法:
而不是调用强制不必要地创建新对象的String构造函数,使用valueOf方法可能是更好的主意,该方法可以在此处充当"不执行任何操作"构造函数:
<bean id="str" class="java.lang.String" factory-method="valueOf">
<constructor-arg value="string_1"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
然而,这只是学术上的,因为解析将导致创建字符串的附加XML属性的开销可能大于调用valueOf而不是构造函数的性能增益.
| 归档时间: |
|
| 查看次数: |
54764 次 |
| 最近记录: |