java – 在Spring EL中引用当前bean的属性
发布时间:2020-12-14 16:46:17  所属栏目:Java  来源:网络整理 
            导读:我想从一个类中创建一些bean,所有这些bean都将在当前应用程序上下文中实例化,每个都基于属性文件中的前缀属性.我举了一个我想要实现的例子.任何关于如何在没有过多代码(例如,没有多个类别,复杂的工厂等)下执行此操作的提示将不胜感激. XML配置: bean id="be
                
                
                
            | 
                         我想从一个类中创建一些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>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
