java – 在Spring EL中引用当前bean的属性

前端之家收集整理的这篇文章主要介绍了java – 在Spring EL中引用当前bean的属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想从一个类中创建一些bean,所有这些bean都将在当前应用程序上下文中实例化,每个都基于属性文件中的前缀属性.我举了一个我想要实现的例子.任何关于如何在没有过多代码(例如,没有多个类别,复杂的工厂等)下执行此操作的提示将不胜感激.

XML配置:

<bean id="bean1" class="Mybean">
    <property name="prefix" value="bean1"/>
</bean>

<bean id="bean2" class="Mybean">
    <property name="prefix" value="bean2"/>
</bean>

<bean id="bean3" class="Mybean">
    <property name="prefix" value="bean3"/>
</bean>

属性文件

bean1.name=alfred
bean2.name=bobby
bean3.name=charlie

类:

class Mybean {
    @Value("${#{prefix}.name}")
    String name;
}

主要类别:

public class Main {
    @Autowired
    List<MyBean> mybeans;
}

解决方法

您可以使用PropertyPlaceholderConfigurer直接设置bean的名称(而不是存储其前缀):
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="app.properties"/>
</bean>

<bean id="bean1" class="Mybean">
    <property name="name" value="${bean1.name}"/>
</bean>

<bean id="bean2" class="Mybean">
    <property name="name" value="${bean2.name}"/>
</bean>

<bean id="bean3" class="Mybean">
    <property name="name" value="${bean3.name}"/>
</bean>

猜你在找的Java相关文章