spring-integration - Spring Inbound 通道适配器和应用程序事件列表消息生产者之间的区别
问题描述
我正在使用 Spring Integration 和 STOMP 开发 POC。初始 POC 成功。我遵循了https://docs.spring.io/spring-integration/reference/html/stomp.html#stomp中提到的适配器配置
在我的 POC 中,我没有包含上述链接中的最后两个 @Bean 定义。
入站通道适配器和消息处理程序足以处理传入消息。
现在,我的问题是:入站通道适配器和应用程序事件列表消息生产者有什么区别?当我们遵循此处示例中提到的 DSL 时,是否使用了 ApplicationListener ?
谢谢,
马赫什
解决方案
ApplicationEvent
好吧,正如您在关于 STOMP 支持的 Spring Integration 文档中注意到的那样, STOMP 通道适配器发出了一些s。如果您处理这些事件的逻辑非常简单并且不需要进一步分发,那么您确实可以使用常规ApplicationListener
( ) 来处理它们。@EventListener
但是,如果您的逻辑非常复杂,并且您可能需要在某个数据库中存储一个偶数(或其部分),或者通过电子邮件发送,在一些聚合之后并行执行,等等,那么ApplicationEventListeningMessageProducer
当我们有 Spring 时,这确实是更好的解决方案已经集成在船上。
但是,如果您谈论StompInboundChannelAdapter
与那些提到的事件的性质和关系,您需要查看StompIntegrationEvent
实现。您很快意识到 STOMP 框架中没有事件payload
。所以,这就是真正做的事情StompInboundChannelAdapter
——它根据来自 STOMP 框架的主体生成消息。
从该通道适配器发出的所有提到的事件都更多地与该适配器状态共享有关,以便在您的应用程序中进行可能的管理。
推荐阅读
- html - CSS 中心 ul 而 li 是文本左对齐
- javascript - 是否可以在 React 中使用流和箭头函数?
- javascript -
全部替换后和在javascript中如何检查字符串是否为空? - javascript - mongoose 上的 save() 函数不起作用
- r - 在 R 中按组使用具有特定样本大小的列表并将其应用于数据集
- excel - 如何从多个文本文件中搜索列表字符串
- apache-flink - 在 RichCoFlatMapFunction 中更新外部数据库
- c# - 在 C# 中的另一个对象内实例化用户定义的对象
- python - 为什么我需要同时从 Crypto 导入 Hash 和从 Crypto.Cipher 导入 PKCS1_OAEP 才能使 Hash.MD5 工作?
- reactjs - 将道具传递给组件:“对象作为 React 子项无效”