隨着春天的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