Множественный контекст интеграции Spring

#spring #spring-integration

#spring #spring-интеграция

Вопрос:

Я хотел бы спросить, что именно происходит при импорте нескольких контекстов интеграции Spring?

Переопределяют ли узлы канала друг друга, если они совпадают в последующих контекстах? Или есть какой-то механизм для предотвращения такого поведения?

Ответ №1:

Приложение Spring Integration — это всего лишь приложение Spring, следовательно, оно соответствует всем правилам настройки.

При импорте нескольких контекстов все они сводятся к одному контексту приложения.

И не имеет значения, какие типы компонентов вы переопределяете (channel — это тоже компоненты). Если несколько компонентов имеют одинаковое имя, по умолчанию победит последний.

Изменить это поведение не так-то просто — DefaultListableBeanFactory#setAllowBeanDefinitionOverriding(false)

С другой стороны, вы можете включить INFO уровень ведения журнала для org.springframework.beans.factory.support.DefaultListableBeanFactory категории, и вы увидите переопределенные компоненты при запуске приложения.

Рекомендуется использовать уникальные имена компонентов, и, на самом деле, IDE жалуются, когда несколько компонентов имеют одинаковые имена.