我想问一下导入多个Spring Integration上下文时到底发生了什么?
如果通道节点在后续上下文中匹配,它们是否会相互覆盖?还是有某种机制可以防止这种行为?
Spring Integration应用程序只是一个Spring应用程序,因此它遵循所有配置规则。
当您导入多个上下文时,它们都被压缩到单个应用程序上下文中。
而且,您覆盖哪种bean类型都没有关系(通道也是bean)。如果几个Bean具有相同的名称,默认情况下,最后一个将获胜。
改变这种行为并非易事- DefaultListableBeanFactory#setAllowBeanDefinitionOverriding(false)
从另一方面,您可以打开类别的INFO
日志记录级别,org.springframework.beans.factory.support.DefaultListableBeanFactory
然后您将在应用程序启动时看到被覆盖的bean。
建议使用唯一的Bean名称,实际上,当几个Bean具有相同的名称时,IDE会抱怨。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句