有没有办法在applicationContext.xml文件中启用或禁用Spring bean定义?

时间:2011-11-26 14:58:35

标签: java spring spring-mvc

在应用程序上下文中有没有办法启用禁用 java bean定义?

<bean id="enBean" classs="com.en.bean.BeanName">
   <property name="prop1"/>
</bean>

或者,有没有办法加载应用程序上下文中定义的bean 有条件

1 个答案:

答案 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定义中的$ {占位符}变量。