在应用程序上下文中有没有办法启用或禁用 java bean定义?
<bean id="enBean" classs="com.en.bean.BeanName">
<property name="prop1"/>
</bean>
或者,有没有办法加载应用程序上下文中定义的bean 有条件?
答案 0 :(得分:10)
春季3.1中有一个新功能@Profile
可以完成这项工作
来自here
Spring 3.1引入了环境概要的概念。普通的 用例是设置不同的bean 开发,QA和生产环境。一个典型的例子是 与开发中的独立DataSource相比而不是查找 来自JNDI的DataSource正在制作中。另一个例子是豆子 可以轻松打开或关闭的配置文件的配置文件。你可以加 XML中的beans元素的profile属性或添加@Profile 代码中的注释。请注意,可以将Spring bean分配给 多个配置文件。
<beans profile="dev">
...
</beans>
@Profile("dev")
public class Bean {
...
}
可以通过spring.profiles.active激活这些配置文件 可以通过环境变量JVM指定的属性 system属性,web.xml或JNDI中的Servlet。这些 也可以通过代码激活配置文件 Environment.setActiveProfiles(String ...)。要使bean配置文件有效, 尽管如此,现在允许在Spring XML中使用嵌套bean元素 仅限于文件的末尾。请注意,建议使用 保持bean拓扑在环境之间尽可能接近,所以 您的应用程序在各种环境中都经过适你也是 使用Environment.containsProperty()方法搜索属性 跨越不同的财产来源。此属性解析也 适用于XML bean定义中的$ {占位符}变量。