请注意:我是 Spring Integration 的新手。
我正在使用 Spring 集成编写一个简单的 ETL 流程,其中每个处理阶段都通过简单的直接 channel 连接到下一个阶段。
在某些阶段,会发生一对多关系或事件爆炸,即包含要处理的新文件的事件通过 channel 传递给使用者,并且使用者正在解析该文件。在这种情况下,我不使用服务激活器,而是选择简单地解析文件并使用 MessagingTemplate 通过不同的(或输出)将消息发送到下一阶段)直接 channel 。
在这种情况下,Intellij 中的 Spring 集成图 不会检测文件解析阶段和输出 channel 之间的连接(通过消息传递模板)。
虽然考虑到依赖关系不是直接的,这是可以理解的,但是否有其他方法可以更改我的设置,以便此依赖关系在 Intellij 的“Spring 集成图”中变得可见?
我正在使用 Intellij Ultimate Edition 2019。
最佳答案
这是正确的:只要您自己使用MessagingTemplate
,您就会破坏流程,因为它基于输入
和输出
channel 端点的选项。
根据您的任务,听起来您需要一个 FileSplitter
和一个 ExecutorChannel
来单独处理下游的每个解析行。
有关详细信息,请参阅文档:
https://docs.spring.io/spring-integration/docs/current/reference/html/core.html#executor-channel
https://docs.spring.io/spring-integration/docs/current/reference/html/file.html#file-splitter
关于java - Intellij Spring 集成图无法通过消息模板检测连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60850482/