随着春天的AbstractRefreshableApplicationContext,我能力弹簧是否有通过设置几个标志和清爽,像这样的背景下Bean的ID或循环引用冲突失败:有没有一种方法可以防止Spring Boot重载bean?
AbstractRefreshableApplicationContext refreshableContext;
...
refreshableContext.setAllowBeanDefinitionOverriding(false);
refreshableContext.setAllowCircularReferences(false);
refreshableContext.refresh();
然而,春天启动的回报一个ConfigurableApplicationContext它不是AbstractRefreshableApplicationContext的一个实例,并且似乎没有任何方法来阻止bean定义覆盖或循环引用。
有谁知道一种方式,并有一个如何防止这些类型的冲突的例子?
对于上下文,这是针对一个大型项目,它具有注释和xml定义的bean的组合。使用的Spring Boot版本是1.3.1.RELEASE。在一些情况下,人们在xml中添加了重复的bean定义,但是应用程序启动正常,并且直到运行时问题开始发生之前,原来的bean才被覆盖。
这里的目标是防止应用程序在发生这种冲突时启动事件。从各种论坛我都知道Spring IDE可以检测到这些,但是我们的愿望是在CI构建中实施这个强大的安全网。
经过一番搜索之后,我无法在Sprint Boot返回的上下文中找到对此的任何支持。如果这不能通过上下文来完成,是否有不同的解决方案?
在此先感谢。
@Primary是你的朋友。和/ @资源...主要和资源-_- – Sarief
感谢您的建议,但我不认为这将跨越应用程序上下文工作,无论该bean来自xml vs java。我会在Javadocs上阅读这些信息,以便我回到办公桌时看到。 – Hazok
它会通过ID来捕获bean,无论它来自哪里。小学也是第一。 – Sarief