位置: IT常识 - 正文

spring integration使用:消息转换器

编辑:rootadmin
spring integration使用:消息转换器 系列文章目录

推荐整理分享spring integration使用:消息转换器,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

…TODO spring integration开篇:说明 …TODO spring integration使用:消息路由 spring integration使用:消息转换器

spring integration使用:消息转换器系列文章目录前言消息转换器(或者叫翻译器)的概念二、translator在spring integration中的实现分为4个组件transformercontent enricherclaim checkcodec目标1.引入库2.码代码2.1.消息源2.2.定义渠道2.3.定义集成流2.4.定义用于处理分流过来消息(前缀为a的消息)集成流总结前言

本系列文章主要是通过一些实际项目场景举例,展开讲解spring integration对enterprise integration patterns的实现。个人能力所限,文中有不妥当或者错误的点还希望大家担待和指正。

文章的示例使用的都是java DSL风格代码,很多上下文都是通过使用Spring Expression Language (SpEL)来做的动作和内容,所以需要你对SpEL有一些了解,这个过程应该不会太长。

关于文章中使用的一些环境依赖和代码风格、约定,请看系列文章的开篇说明。

消息转换器(或者叫翻译器)的概念

在许多情况下,企业集成解决方案在现有应用程序(如遗留系统、打包应用程序、自行开发的自定义应用程序或由外部合作伙伴运营的应用程序)之间路由消息。这些应用程序中的每一个通常都是围绕专有数据模型构建的。每个应用程序对客户实体的概念可能略有不同,定义客户的属性以及客户与哪些其他实体相关。例如,会计系统可能对客户的纳税人 ID 号更感兴趣,而客户关系管理 (CRM) 系统存储电话号码和地址。应用程序的基础数据模型通常驱动物理数据库模式、接口文件格式或编程接口 (API) 的设计,这些实体是集成解决方案必须与之交互的。因此,应用程序期望接收模仿应用程序内部数据格式的消息。

除了各种应用程序中包含的专有数据模型和数据格式之外,集成解决方案通常还与寻求独立于特定应用程序的标准化数据格式进行交互。有许多联盟和标准机构定义了这些协议,例如RosettaNet,ebXML,OAGIS和许多其他行业特定的联盟。在许多情况下,集成解决方案需要能够使用“官方”数据格式与外部各方进行通信,而内部系统则基于专有格式。

使用不同数据格式的系统如何使用消息传递相互通信?

spring integration使用:消息转换器

在其他过滤器或应用程序之间使用特殊筛选器(消息转换器)将一种数据格式转换为另一种数据格式。

消息转换器是 [GoF] 中描述的适配器模式的消息传递等效项。适配器将组件的接口转换为另一个接口,以便可以在不同的上下文中使用。

在EIP中叫translator。

二、translator在spring integration中的实现分为4个组件

transformer:将源消息转换(翻译)为你指定的任意格式或者类型(比如XML转换为JSON)。 content enricher:动态扩充源消息的header或者payload内容,加字段之类的操作。 claim check:是一种消息传递机制,它可以解决消息体过大的问题,提高系统的可靠性和稳定性。 codec:编解码器对对象进行编码和解码。

transformercontent enricherheader enricherpayload enricherclaim check

Claim Check是一种消息传递机制,它可以解决消息体过大的问题,提高系统的可靠性和稳定性。

当消息体过大时,传输和处理这些消息会导致系统的性能下降。为了解决这个问题,Claim Check机制可以将消息体抽离出来,只传递消息的引用,而不是整个消息体。这样可以减少消息传输的数据量,提高传输效率。

在Claim Check机制中,消息的发送方将消息体存储到一个中央存储区域,然后只传递消息体的引用给接收方。当接收方需要处理消息时,它可以使用引用来检索消息体,然后对消息进行处理。

Claim Check机制的优点是可以降低系统的开销,同时可以提高系统的可靠性和稳定性。通过使用Claim Check机制,可以避免因为消息体过大导致的系统错误和性能下降的问题,从而提高系统的可维护性和可扩展性。

codec目标

通过对消息内容做判断将消息分流到不同的渠道中进行后续处理。

1.引入库

gradle

implementation 'org.springframework.boot:spring-boot-starter-integration' implementation 'org.springframework.integration:spring-integration-http' implementation 'org.springframework.integration:spring-integration-file'2.码代码2.1.消息源 public String getFeed() { RestTemplate restTemplate = new RestTemplate(); String forObject = restTemplate.getForObject("https://spring.io/blog.atom", String.class);// String forObject = restTemplate.getForObject("https://tuna.moe/feed.xml", String.class);// System.out.println(forObject); return forObject; }2.2.定义渠道 @Bean public MessageChannel prefixa(){ return new DirectChannel(); }2.3.定义集成流 @Bean public IntegrationFlow httpOutboundFlow() { return IntegrationFlows.fromSupplier(this::getFeed, c -> c.poller(Pollers.fixedRate(10000))) .channel(MessageChannels.direct()) .transform(Transformers.objectToString("UTF-8")) .split(s -> s.applySequence(false).delimiters(" ")) .<String>filter((p) -> p.length() < 10 && p.matches("\\b[\\w]{3,}\\b")) .channel(MessageChannels.direct()) .routeToRecipients(r->r .applySequence(true) .ignoreSendFailures(true) .defaultOutputChannel("nullChannel") .recipient("prefixa", "payload.startsWith('a')") ) .get(); }2.4.定义用于处理分流过来消息(前缀为a的消息)集成流 @Bean public IntegrationFlow printAFlow(){ return IntegrationFlows.from("prefixa") .handle(p->{ System.out.println("^^^^^^^^^^^^^^^" + p.getPayload()); }) .get(); }总结

…TODO。

本文链接地址:https://www.jiuchutong.com/zhishi/299695.html 转载请保留说明!

上一篇:提示工程师:如何高效的向ChatGPT提问对话(工程师模式有什么用)

下一篇:理解vuex实现的原理(vuex用法和原理)

  • 发帖推广需要注意的重要细节(帖子发布推广)

    发帖推广需要注意的重要细节(帖子发布推广)

  • 苹果11系列充电器一样吗(苹果11系列充电器通用吗)

    苹果11系列充电器一样吗(苹果11系列充电器通用吗)

  • 抖音照片怎么保存到相册(抖音照片怎么保存视频)

    抖音照片怎么保存到相册(抖音照片怎么保存视频)

  • 百家号账号状态异常怎么办(百家号账号状态怎么看)

    百家号账号状态异常怎么办(百家号账号状态怎么看)

  • 微信被一个人举报就能封号吗(微信被一个人举报后果)

    微信被一个人举报就能封号吗(微信被一个人举报后果)

  • qq人脸识别为什么识别不了(qq人脸识别不了怎么办)

    qq人脸识别为什么识别不了(qq人脸识别不了怎么办)

  • 荣耀30防水级别(荣耀30防水防尘级别是多少)

    荣耀30防水级别(荣耀30防水防尘级别是多少)

  • b站下载视频在哪个文件夹(看b站视频下载软件)

    b站下载视频在哪个文件夹(看b站视频下载软件)

  • 补手机卡去哪里补(补手机卡去哪里办理)

    补手机卡去哪里补(补手机卡去哪里办理)

  • PUK码是什么(中国移动的puk码是什么)

    PUK码是什么(中国移动的puk码是什么)

  • max232是什么芯片(max232芯片引脚图)

    max232是什么芯片(max232芯片引脚图)

  • 荣耀20青春版充电器型号(荣耀20青春版充电器参数)

    荣耀20青春版充电器型号(荣耀20青春版充电器参数)

  • 线控耳机唤醒是什么意思(线控耳机唤醒是不是能自动关闭多媒体音量)

    线控耳机唤醒是什么意思(线控耳机唤醒是不是能自动关闭多媒体音量)

  • 计算机病毒是一个标记或一个命令吗(计算机病毒是一种有逻辑错误的程序)

    计算机病毒是一个标记或一个命令吗(计算机病毒是一种有逻辑错误的程序)

  • 苹果xsmax怎么把声音调大(苹果xsmax怎么把两张照片合在一起)

    苹果xsmax怎么把声音调大(苹果xsmax怎么把两张照片合在一起)

  • 好友热播榜如何取消(好友热播是什么)

    好友热播榜如何取消(好友热播是什么)

  • 手表计步器怎么用(手表计步器怎么同步到微信)

    手表计步器怎么用(手表计步器怎么同步到微信)

  • iphone黑明单设置在哪里(苹果的黑名单在哪里)

    iphone黑明单设置在哪里(苹果的黑名单在哪里)

  • qq群名片在哪(扣扣群名片在哪里找)

    qq群名片在哪(扣扣群名片在哪里找)

  • 恢复修改msconfig保存后的重启提示框(恢复修改过的图片)

    恢复修改msconfig保存后的重启提示框(恢复修改过的图片)

  • elementUI中的el-table表头和内容全部一行显示完整(elementui中的el-tab-pane为什么内容会为0)

    elementUI中的el-table表头和内容全部一行显示完整(elementui中的el-tab-pane为什么内容会为0)

  • 活久见!郭敬明道歉了!于正也道歉了!道歉的英文就是SORRY吗?(g郭敬明)

    活久见!郭敬明道歉了!于正也道歉了!道歉的英文就是SORRY吗?(g郭敬明)

  • dedecms织梦列表页单独调用总页数二次开发方法(织梦栏目页模板)

    dedecms织梦列表页单独调用总页数二次开发方法(织梦栏目页模板)

  • 企业所得税广告费30%扣除
  • 海关缴款书上完税怎么办
  • 跨年度调整税金及附加
  • 个税申报赡养老人可以填公婆吗
  • 万元版和十万元版可以一起用吗
  • 应付职工薪酬包括哪些内容
  • 结转损益类费用科目的余额
  • 建筑材料专票抵扣
  • 工会差旅费如何做账
  • 非独立核算的分公司如何报税
  • 融资租入的企业有哪些
  • 存货呆滞是什么意思
  • 产品质量问题怎么处罚
  • 工地上汽车加油怎么加
  • 签订设备维修合同会计分录
  • 哪些费用可以税后扣除
  • 计税收入金额是什么意思
  • 非居民企业取得股息红利企业所得税
  • 其他应收款怎么分析
  • 房地产预收房款怎么开票
  • 一般纳税人未达到起征点要交税吗
  • 收到专项拨款属于什么科目
  • 进项已抵扣怎么申报
  • 同一控制下企业合并权益抵消
  • 哪些企业所得税汇算清缴
  • 消防工作经历证明哪些单位可以开
  • 员工垫付公司钱怎么入账
  • cpu游戏性能天梯图2023
  • 调整会计分录是什么
  • 苹果电脑录屏的视频保存在哪里
  • PHP:mb_http_input()的用法_mbstring函数
  • 工程完工结转成本怎么算
  • 外汇业务的核算ppt
  • 自制原始发票
  • 得了遗尿症应该怎么办
  • json postman
  • 企业工商年检什么意思
  • php array add
  • 发行股票溢价计入
  • 竣工结算审计费用在线计算器
  • 前端常见面试
  • 汇划款项与资金清算核算内容包括哪些
  • 怎么应对降税行业
  • 消费税算不算运费
  • 入库材料计入什么科目
  • 收付转凭证和记帐凭证的区别?
  • 珊瑚虫怎么变成珊瑚的
  • 深入理解计算机系统
  • 进口退货退税
  • 增值税发票税率计算公式
  • 贴现法付息实际利率
  • 个体户记账报税
  • 银行存款收入范围有哪些
  • 投资款如何界定
  • 对公账户付个人工资怎么入账
  • 红冲上一年度销售收入
  • 退资本金现金流量表走哪一项
  • 关于发票丢失的处罚
  • 资产减值损失包含
  • 工业企业发生的各项费用都应计入产品成本对不对
  • 工业企业检查表
  • mysql解压版
  • WIN10系统怎么删除3Dmax
  • windows软件删除
  • shutdown /f
  • win7共享设置(详细图文步骤)
  • python的linux
  • 显示自己的ip的手机
  • vue实现下载功能
  • 深入解读2023年一号文件
  • jquery导航菜单
  • 珠宝消费税怎么征收
  • 大连电子税务局app下载
  • 浙江税务局12366
  • 河南省医保网上报销流程
  • 捐赠纳税
  • 个人年收入超过多少不能退税
  • 车辆整备质量怎么填
  • 股息税怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设