是否有在Spring上下文XML文件中创建String常量的简写?

aki*_*adu 36 java spring

我需要在Spring上下文XML文件中定义一个由多个bean共享的字符串值.

我是这样做的:

<bean id="aSharedProperty" class="java.lang.String">
    <constructor-arg type="java.lang.String" value="All beans need me :)"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

通过传递java.lang.String的构造函数参数来创建java.lang.String bean似乎是kludgy.

有捷径吗?

我知道可以使用PropertyOverrideConfigurer传递此属性,但我想将此属性保留在XML文件中.

mre*_*isz 24

您可以PropertyPlaceholderConfigurer在xml中使用和保留值:

<context:property-placeholder properties-ref="myProperties"/>

<bean id="myProperties" 
    class="org.springframework.beans.factory.config.PropertiesFactoryBean">
  <property name="properties">
    <props>
      <prop key="aSharedProperty">All beans need me :)</prop>
    </props>
  </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

然后你引用它:

<bean id="myBean" class="my.package.MyClass">
  <property name="someField" value="${aSharedProperty}"/>
</bean>
Run Code Online (Sandbox Code Playgroud)


Kai*_*tsu 13

mrembisz提出的解决方案的简写如下:

<context:property-placeholder properties-ref="myProperties"/>

<util:properties id="myProperties">
    <prop key="aSharedProperty">All beans need me :)</prop>
</util:properties>
Run Code Online (Sandbox Code Playgroud)