iro*_*hon 12 java spring 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>
Run Code Online (Sandbox Code Playgroud)
属性文件:
bean1.name=alfred
bean2.name=bobby
bean3.name=charlie
Run Code Online (Sandbox Code Playgroud)
类:
class Mybean {
@Value("${#{prefix}.name}")
String name;
}
Run Code Online (Sandbox Code Playgroud)
主类:
public class Main {
@Autowired
List<MyBean> mybeans;
}
Run Code Online (Sandbox Code Playgroud)
您可以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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
710 次 |
| 最近记录: |