防止覆盖bean的bean定义

时间:2012-11-15 16:10:05

标签: java spring

我知道我们可以通过以下方式禁用spring beans的重载:

GenericApplicationContext.setAllowBeanDefinitionOverriding(boolean b) 

Spring Ref

但是,我认为WebApplicationContext没有以编程方式加载,而是通过我的web.xml文件加载。那么,我如何防止在WebApplicationContext

中覆盖Spring bean

1 个答案:

答案 0 :(得分:3)

一种,不是特别优雅的方式是覆盖默认的WebApplicationContext。在web.xml中:

<context-param>
  <param-name>contextClass</param-name>
  <param-value>my.package.MyWebApplicationContext</param-value>
</context-param>

,其中

public class MyWebApplicationContext extends XmlWebApplicationContext {
  public MyWebApplicationContext() {
    super();
    this.setAllowBeanDefinitionOverriding(false);
  }
}