java - 引用 spring bean 中的一组属性

标签 java spring spring-mvc dependency-injection

我正在使用 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 中一样,我使用相同的属性和相同的值。 有没有办法将这些属性写入公共(public)标记并将其注入(inject)到上面的 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变量定义另一个类并将该类注入(inject)所需的bean来实现。 但我不想更改已经在 com.stack.Exchange 类中编写的代码。

谢谢 镍丁

最佳答案

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

    <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>

关于java - 引用 spring bean 中的一组属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28065434/

相关文章:

java - SonarQube:源目录与包声明不匹配

java - 是否有一个 Spring 拦截器在 UsernamePasswordAuthenticationFilter 之前被调用?

spring - Thymeleaf 中的有条件关闭标签

java - 无法在 Spring Security 中用自定义替换标准登录表单

spring-mvc - 如何将通用集合类对象作为参数传递

spring - 请求映射返回错误 404

java - 多项式 GUI 不起作用

java - Bouncy CaSTLe Sha3 输出错误?

java - 您能解释一下这些说法吗?

java - 在 Java 8 默认接口(interface)方法上使用 Spring @Transactional 注释是否安全?