С весной AbstractRefreshableApplicationContext, я могу заставить Spring потерпеть неудачу, если есть конфликт идентификаторов Bean или циклических ссылки, установив пару флагов и освежающего контекст, как так:Есть ли способ предотвратить перебор бобов с помощью Spring Boot?
AbstractRefreshableApplicationContext refreshableContext;
...
refreshableContext.setAllowBeanDefinitionOverriding(false);
refreshableContext.setAllowCircularReferences(false);
refreshableContext.refresh();
Однако, Spring Загрузочный возвращается a ConfigurableApplicationContext, который не является экземпляром AbstractRefreshableApplicationContext и, по-видимому, не имеет средств для предотвращения переопределения или циклических ссылок.
Кто-нибудь знает способ и пример того, как предотвратить подобные конфликты?
Для контекста это для большого проекта, который содержит сочетание аннотированных и xml определенных bean-компонентов. Используемая версия Spring Boot - 1.3.1.RELEASE. Были случаи, когда люди добавляли в xml повторяющиеся определения bean-компонентов, но приложение запускалось нормально, и сразу не было видно, что исходный bean-компонент был переопределен до тех пор, пока не возникли проблемы с запуском.
Целью здесь является предотвращение запуска приложения при возникновении такого конфликта. На различных форумах я знаю, что Spring IDE может их обнаружить, но желание обеспечить это в сборке CI, которая является более сильной сетью безопасности.
После некоторого поиска я не могу найти поддержку для этого в том контексте, который возвращает Sprint Boot. Если это невозможно сделать через контекст, существует ли другое решение?
Заранее спасибо.
@Primary является вашим другом. И/@ Ресурс ... Первичный и ресурс -_- – Sarief
Спасибо за предложение, но я не думаю, что это будет работать через контекст приложения, независимо от того, будет ли компонент из xml vs java. Я буду читать Javadocs для тех, кто увидит, когда я вернусь к своему столу. – Hazok
он будет ловить бобы по id независимо от того, откуда он. Также Первичный идет первым. – Sarief