企业为什么需要建站,wordpress主题国外优秀,创建网站的基本步骤,建筑公司企业理念这篇文章将总结Spring Integration#xff08;SI#xff09;的重要要点以及消息传递集成模式。 对于每个关键提示#xff0c;我都会根据我的经验添加一个真实的示例。 分离器 一个。 它能做什么#xff1f; 拆分器实际上是一种模式#xff0c;它在某一点接收一条消息并将… 这篇文章将总结Spring IntegrationSI的重要要点以及消息传递集成模式。 对于每个关键提示我都会根据我的经验添加一个真实的示例。 分离器 一个。 它能做什么 拆分器实际上是一种模式它在某一点接收一条消息并将其拆分为多个。 b。 为什么对我有好处 当您要将内容拆分为多个部分时可以使用“拆分器”。 每个部分将异步处理内容。 C。 现实生活中的例子 在交易系统中您可以进行交易请求。 该请求假定要执行以下几个步骤针对提供者执行该请求将其记录在DB中向客户端发送通知 使用Splitter您可以一次完成所有操作。 d。 SI示例 int:splitter idtradeSplitter input-channeltradeSplitterInputChannel output-channeloutPutChannel路由器 一个。 它能做什么 路由器是一种机制当在某一点以基于内容的标准接收消息时它将分派到特定的目的地。 b。 为什么对我有好处 当您实际有不同的消息输入需要根据其内容进行不同的处理时路由器非常方便。 C。 现实生活中的例子 因此您的基础结构中具有通知功能。 每个客户选择的通知方式有所不同电子邮件短信传真Web服务等。 通知请求被发送到客户端并且基于请求内容路由器将选择将请求处理到哪个组件EmailServiceSmscServiceFaxService等。 d。 SI示例 router idnotificationsRouter input-channelnotificationInputChannel聚合器 一个。 它能做什么 聚合器角色是等待一组相关消息。 在检索到所有预期的消息之后它将能够合并它们并发送单个结果。 聚合器能够通过组相关性ID同时处理不同的组消息。 b。 为什么对我有好处 通常聚合器与拆分器一起工作。 将请求并行拆分到多个目标之后您可能需要汇总所有目标结果并将最终结果作为输出发送。 C。 现实生活中的例子 在交易系统中您从不同的提供商处获得不同的价格。 通常在所有提供商中选择最优惠的价格。 汇总器将能够汇总所有价格并发回最优惠的价格。 d。 SI示例 int:aggregator input-channelbestPriceAgg output-channelbestPriceChannel
send-partial-result-on-expirytrue
/int:aggregator过滤 一个。 它能做什么 简而言之“您想收到此消息吗” b。 为什么对我有好处 您的组件可能会收到不同的消息。 您可以根据消息有效负载过滤消息而不是处理不必要的消息在EJB世界中它与消息驱动的Bean选择器非常相似。 C。 现实生活中的例子 在交易系统世界中您可以选择是否包含最终价格的佣金。 您的职责是仅向希望的客户增加佣金。 通过过滤器的该组件将仅接收基于佣金的价格。 d。 SI示例 filter input-channelcommisionsChannel refselector output-channeloutput/变压器 一个。 它能做什么 转换器可以接收消息并将其有效载荷从一种类型转换为另一种类型。 b。 为什么对我有好处 您可能已根据目的地将消息格式从一种转换为另一种。 b。 为什么对我有好处 很多时候我们以一种格式接收输入然后需要在添加/修改/删除有效载荷内容之后将其解析或转换为其他格式例如从XML转换为String反之亦然。 C。 现实生活中的例子 因此您有一个订购请求。 该请求需要以特定格式放置在数据库中之后需要以xml格式发送给客户端。 您可以转换有效载荷以适合您的目的地需求。 d。 SI示例 object-to-string-transformer input-channelin output-channelout/ SI中还有其他组件。 那些是最受欢迎的。 参考 IdanFridman.com博客上来自JCG合作伙伴 Idan Fridman的Spring Integration关键笔记以及现实生活场景 。 翻译自: https://www.javacodegeeks.com/2013/05/spring-integration-key-notes-with-real-life-scenarios.html