doc的片段
消息端点表示管道过滤器的“过滤器” 建筑。如前所述,端点的主要作用是 将应用程序代码连接到消息传递框架,并在 无创方式。换句话说,应用程序代码应 理想情况下不了解消息对象或消息 渠道。
变压器,过滤器,服务激活器都是Message Endpoints
。
我不明白为什么要调用它们,以便应用程序实际上可以将消息发送到输入通道,而这些“端点”在链的中间使用。换句话说,该应用知道通道,而不知道端点。
示例:
@SpringBootApplication
@IntegrationComponentScan
public class SendToInputChannel {
@Bean
public IntegrationFlow flow() {
return IntegrationFlows.from("input")
.handle(System.out::println).get();
}
public static void main(String[] args) throws IOException {
ConfigurableApplicationContext ctx = SpringApplication.run(SendToInputChannel.class, args);
MessageChannel inputChannel = ctx.getBean("input", MessageChannel.class);
for (int i = 0; i < 10; i++) {
inputChannel.send(MessageBuilder.withPayload(i)
.build());
}
ctx.close();
}
}
答案 0 :(得分:2)
Ekaterina,这一切都从Enterprise Integration Patterns (EIP) book开始,Spring Integration(SI)实际上是EIP的参考实现。我们试图与“那个脚本”保持非常接近。因此,您可以从this excerpt中看到-消息端点用于将应用程序连接到消息传递通道。换句话说,SI本身就是一个消息传递框架,因为它提供了可以连接各种 Filters / Endpoints 的内部通道。
请记住,1
是一个接口,不仅可以表示在SI中实现的内部通道。例如,可以实现一个MessageChannel接口,该接口为JMS队列或其他任何内容提供一些代理,而 Filters / Endpoints 将保持不变/不变。
我可以继续,但是我希望现在就足够了,但是可以免费跟进。