我知道我们可以通过以下方式禁用 spring bean 的重载:
GenericApplicationContext.setAllowBeanDefinitionOverriding(boolean b)
但是,我认为 WebApplicationContext 不是以编程方式加载的,而是通过我的 web.xml 文件加载的。那么,如何防止在 WebApplicationContext 中覆盖 Spring bean
一种不是特别优雅的方法是覆盖默认的 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);
}
}