位置: 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用法和原理)

  • 最实用的网络推广四种方法(常用的网络推广平台有哪些呢)

    最实用的网络推广四种方法(常用的网络推广平台有哪些呢)

  • 微信群发最多多少人(微信群发最多多少字)

    微信群发最多多少人(微信群发最多多少字)

  • 苹果12在哪里开启深色模式(苹果12在哪里开5g)

    苹果12在哪里开启深色模式(苹果12在哪里开5g)

  • 怎么发微信视频号(抖音怎么发微信视频)

    怎么发微信视频号(抖音怎么发微信视频)

  • 抖音怎么添加文字滚动(抖音怎么添加文案和话题)

    抖音怎么添加文字滚动(抖音怎么添加文案和话题)

  • 探探怎么知道自己被删(探探怎么知道自己注销没有)

    探探怎么知道自己被删(探探怎么知道自己注销没有)

  • 笔记本delete键在哪里(笔记本delete键在哪)

    笔记本delete键在哪里(笔记本delete键在哪)

  • 不写身份证号能让qq解冻吗(没有用身份证号)

    不写身份证号能让qq解冻吗(没有用身份证号)

  • 12123印章未维护是什么意思(12123印章未维护怎么查看时间)

    12123印章未维护是什么意思(12123印章未维护怎么查看时间)

  • qq投票投错了可以改么(qq投票投错了怎么办)

    qq投票投错了可以改么(qq投票投错了怎么办)

  • 抖音视频禁发了怎么办(抖音禁止发布作品处罚多久)

    抖音视频禁发了怎么办(抖音禁止发布作品处罚多久)

  • mad和amv区别(amv mad mmd mhv的差别)

    mad和amv区别(amv mad mmd mhv的差别)

  • 为什么苹果手机连接电脑没有显示(为什么苹果手机无线局域网打不开)

    为什么苹果手机连接电脑没有显示(为什么苹果手机无线局域网打不开)

  • word打印快捷键(word打印快捷键怎么添加到工具栏)

    word打印快捷键(word打印快捷键怎么添加到工具栏)

  • iphonexr是双卡双待吗(iphonexr双卡双4g吗)

    iphonexr是双卡双待吗(iphonexr双卡双4g吗)

  • 货到付款怎么取消订单(货到付款怎么取消京东)

    货到付款怎么取消订单(货到付款怎么取消京东)

  • 手机怎么设置紧急呼叫(手机怎么设置紧急报警电话)

    手机怎么设置紧急呼叫(手机怎么设置紧急报警电话)

  • 拼多多免拼单在哪里找(拼多多订单免拼)

    拼多多免拼单在哪里找(拼多多订单免拼)

  • 京东评价怎么删除(京东评价咋删除)

    京东评价怎么删除(京东评价咋删除)

  • 电脑蓝屏7b怎么解决(电脑蓝屏7b怎么修复,修改anci没用)

    电脑蓝屏7b怎么解决(电脑蓝屏7b怎么修复,修改anci没用)

  • vue设置时长方法(vue怎么延长时间)

    vue设置时长方法(vue怎么延长时间)

  • 怎么下载视频到电脑(怎么下载视频到mp3)

    怎么下载视频到电脑(怎么下载视频到mp3)

  • 抖音怎么弄三屏满屏视频(抖音怎么弄三屏满屏)

    抖音怎么弄三屏满屏视频(抖音怎么弄三屏满屏)

  • 手机支付宝怎么用(手机支付宝怎么挂号)

    手机支付宝怎么用(手机支付宝怎么挂号)

  • 华为怎么关闭云空间(华为怎么关闭云服务通知)

    华为怎么关闭云空间(华为怎么关闭云服务通知)

  • 补交土地使用税到大厅怎么申报
  • 增量留抵税额怎么做分录
  • 视同销售增值税表怎么填
  • 进销的单位不一样怎么办
  • 小规模纳税人处置固定资产的税率
  • 福利企业要求
  • 工业企业生产费用按经济内容划分,一般称为
  • 可供出售权益工具投资是非货币
  • 增值税留抵税额抵减欠税
  • 银行汇票使用流程举例
  • 上年度没有计提企业所得税
  • 失业社保补助金领取条件
  • 主营业务成本属于
  • 税控盘证书密码一天可以输几次
  • 母公司向分公司收取管理费
  • 公司为职工缴纳的医保不计入账户吗
  • 企业收到现金支票
  • 行政事业单位的固定资产不计提折旧
  • 工资扣员工的罚款入什么科目
  • 差额征税的计算方式
  • 设计师用windows什么版本
  • 报销差旅费退回余款填什么凭证
  • 房地产转让的条件
  • mac屏幕共享要打开什么权限
  • 司机公里补助用不用交个税
  • IE浏览器如何取消全屏
  • 以下哪些企业需要填报
  • 公司购买写字楼怎么入账
  • SchSvr.exe - SchSvr是什么进程 有什么作用
  • antvl7
  • 用友结算成本处理的作用
  • 金融企业计提贷款利率
  • 资产评估中折现怎么算
  • 劳务费发票和建筑劳务费发票
  • 补缴去年的工会经费计提
  • 观察者模式java实现
  • phpwechat
  • 应收票据确认坏账怎么处理
  • cuppath
  • 应收账款科目有哪些类别
  • more命令 查找
  • 帝国cms移动端设置教程
  • 一般纳税人企业所得税如何计算
  • 个人佣金收入怎样交税
  • 开具培训类发票需要哪些条件?
  • 制造费用月末一般有余额吗
  • 个人借款利息收入缴纳个税吗
  • 公账转钱出来要收手续费吗
  • 收到退回的企业所得税分录
  • 清包工可以有一部分小料吗
  • sql server数据库怎么使用
  • 公司一年的账目怎样算
  • 个税申报可以去税务局吗
  • 企业清算是怎么做账的
  • 计划成本法下的会计科目
  • 仓库盘点后的数据怎么处理
  • 研发人员伙食费可以加计扣除吗为什么
  • 出差补助没有发票
  • 银行卡被误扣多少钱
  • 小规模纳税人公转私技巧
  • 结转周转材料成本
  • 反结账钱会转回去吗
  • 一般纳税人混凝土税负率
  • 各单位应当根据需要设立专职或者兼职
  • mysql使用教程
  • sql server2008启动
  • 每天一条linux命令
  • 雨林木风Windows10
  • linux 安装指令
  • win10系统开机自动还原
  • Win10 Mobile RedStone预览版14267.1004更新内容汇总(持续更新)
  • opengl learning
  • js动态改变div内容
  • js 箭头表达式
  • 高仿微信本地图片违法吗
  • gin项目
  • jquery设置边框
  • javascript面向对象 第三方类库
  • android实现选择题模式
  • 资源税谁缴纳
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设