#spring #spring-integration
#spring #spring-интеграция
Вопрос:
Я хотел бы спросить, что именно происходит при импорте нескольких контекстов интеграции Spring?
Переопределяют ли узлы канала друг друга, если они совпадают в последующих контекстах? Или есть какой-то механизм для предотвращения такого поведения?
Ответ №1:
Приложение Spring Integration — это всего лишь приложение Spring, следовательно, оно соответствует всем правилам настройки.
При импорте нескольких контекстов все они сводятся к одному контексту приложения.
И не имеет значения, какие типы компонентов вы переопределяете (channel — это тоже компоненты). Если несколько компонентов имеют одинаковое имя, по умолчанию победит последний.
Изменить это поведение не так-то просто — DefaultListableBeanFactory#setAllowBeanDefinitionOverriding(false)
С другой стороны, вы можете включить INFO
уровень ведения журнала для org.springframework.beans.factory.support.DefaultListableBeanFactory
категории, и вы увидите переопределенные компоненты при запуске приложения.
Рекомендуется использовать уникальные имена компонентов, и, на самом деле, IDE жалуются, когда несколько компонентов имеют одинаковые имена.