【问题标题】:Refer a set of properties in a spring bean在 spring bean 中引用一组属性
【发布时间】:2015-01-21 10:55:43
【问题描述】:

我正在使用 spring 并且有一个需要配置大量 bean 的要求。例如:

<bean name="PC_Name" class="com.stack.Exchange">
 <property name="firstName" value="jack"/>
 <property name="lastName"  value="nicolas"/>
</bean>

<bean name="Mobile_Name" class="com.stack.Exchange">
  <property name="firstName" value="jack"/>
  <property name="lastName"  value="nicolas"/>
</bean>

现在,与上述两个 bean 一样,我使用相同的属性和相同的值。 有什么方法可以将这些属性写入一个公共标记并将其注入到上面的 bean 中。类似的东西:

<bean name="PC_Name" class"com.stack.Exchange">
  <properties name="nameReference"/> 
</bean>

<bean name="Mobile_Name" class"com.stack.Exchange">
 <properties name="nameReference"/> 
</bean> 

 <properties name="nameReference">
    <property name="firstName" value="jack"/>
    <property name="lastName"  value="nicolas"/>
 </properties> 

我知道这可以通过使用 firstName 和 lastName 变量定义另一个类并将该类注入所需的 bean 来实现。 但我不想更改已经在 com.stack.Exchange 类中编写的代码。

谢谢 尼丁

【问题讨论】:

  • 这对您的要求有用吗?

标签: java spring spring-mvc dependency-injection


【解决方案1】:

您可以创建一个 Bean 定义模板。在这个 bean 中,您必须声明一个值为 true 的属性“抽象”。您不应在其中指定类属性。

    <bean id="beanTemplate" abstract="true">
       <property name="firstName" value="jack"/>
       <property name="lastName"  value="nicolas"/>
    </bean>
    <bean name="PC_Name" class"com.stack.Exchange" parent="beanTemplate">
    </bean>
    <bean name="Mobile_Name" class"com.stack.Exchange" parent="beanTemplate">
    </bean>

【讨论】:

    猜你喜欢
    • 2012-12-24
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多