@EnableBinding源码中明确声明

该注解在从3.1版本开始被弃用,推荐我们使用函数编程的方式

我将给出一个生产者和消费者的使用案例:

生产者案例:

yml配置:

server:port: 8801spring:application:name: cloud-stream-providerrabbitmq:host: 192.168.220.101port: 5672username: guestpassword: guestcloud:stream:bindings: #服务的整合处理myChannel-out-0: #这个名字是一个通道的名字destination: studyExchange #表示要使用Exchange名称定义contentType: application/json #设置消息类型,本次为json,文本则设置为“text/plain”

注意bingdings 集合中的key由 通道名-out/in-数字组成

service层代码:

package com.jx.springCloud.service.impl;import com.jx.springCloud.service.MessageProvider;
import org.springframework.cloud.stream.function.StreamBridge;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.stereotype.Service;import java.util.UUID;/*** @author LDW* @date 2022/4/10 20:35*/
@Service
public class MessageProviderImpl implements MessageProvider {private final StreamBridge streamBridge;public MessageProviderImpl(StreamBridge streamBridge) {this.streamBridge = streamBridge;}@Overridepublic String send() {String serial = UUID.randomUUID().toString();streamBridge.send("myChannel-out-0", MessageBuilder.withPayload(serial).build());System.out.println("发送消息: " + serial);return null;}
}

@Autowire注解自动注入StreamBridge的实例,上述代码的写法省去了@Autowire注解

StreamBridge的send方法第一个参数是binding的名字,第二个参数是想要发送的消息

controller层代码:

@RestController
public class SendMessageController {private final MessageProvider messageProvider;public SendMessageController(MessageProvider messageProvider) {this.messageProvider = messageProvider;}@GetMapping("/sendMessage")public String sendMessage() {return messageProvider.send();}
}

消费者案例:

yml配置:

server:port: 8802spring:application:name: cloud-stream-consumerrabbitmq:host: 192.168.220.101port: 5672username: guestpassword: guestcloud:stream:bindings: #服务的整合处理myChannel-in-0: #这个名字是一个通道的名字destination: studyExchange #表示要使用Exchange名称定义contentType: application/json #设置消息类型,本次为json,文本则设置为“text/plain”

service层代码:

@Service
@Slf4j
public class StreamConsumerService {@Beanpublic Consumer<String> myChannel() {return message -> log.info("消息:"+message);}
}

上述代码的方法名(即Consumer的bean实例名)需要是yml配置中的通道名,应用程序启动后会自动接收生产者发送的消息

发送请求:localhost:8801/sendMessage

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

SpringCloud Stream @EnableBinding注解过时相关推荐

  1. springcloud 相同服务名_SpringCloud系列之SpringCloud Stream

    SpringCloud Stream 技术兴起的原因:为了解决系统中不同中间件的适配问题,出现了cloud stream,采用适配绑定的方式,自动给不同的MQ之间进行切换. 屏蔽底层消息中间件的差异, ...

  2. SpringCloud Stream+RabbitMQ自定义通道

    SpringCloud Stream默认的消息生产通道和消费通道分别是output和input,我们也可以自定义消息生产通道和消费通道:下面对这一过程进行记录. 1 父maven工程 1.1 工程结构 ...

  3. SpringCloud Stream MQ生产和消费同应用造成的同步问题

    我们项目统计模块导出的时候为了达到异步的效果使用了mq来解决,可是producer和consumer是同个应用也就是都是处在一个应用中,之前因为数据少就没有注意异步的效果,改造之后我们模拟了67w的数 ...

  4. 记一次springcloud stream延迟消息失效

    起因 实现一个封号功能,可以封1,3,7,30,永久的不同天数,其中1,3,7,30是通过springcloud stream整合rabbitmq的延迟队列来实现,到期自动解封. 问题 当时间设置30 ...

  5. SpringCloud Stream消息驱动

    为啥有这个技术??? 1. 这个stream是操作消息队列的,简化,学习消息队列的成本降低. 2. 可操作rabbitMQ兔子message queue,kafaka,可理解为jdbc可操作oracl ...

  6. SpringCloud2020学习笔记13——SpringCloud Stream消息驱动

    目录 一.消息驱动概述 1.简介 2.官网 2.设计思想 ① 标准MQ ② 为什么用Cloud Stream ③ Stream中的消息通信方式遵循了发布-订阅模式 3.Spring Cloud Str ...

  7. SpringCloud Stream多源的使用

    说明 上次我们使用Amqp包进行MQ多数据源的接入,这次我们换一个包,使用SpringCloud里的Stream来进行接入.这次的接入方式要看起来更清晰好看一些,不用写配置Bean,通过binding ...

  8. SpringCloud stream连接RabbitMQ收发信息

    百度上查的大部分都是一些很简单的单消费者或者单生产者的例子,并且多是同一个服务器的配置,本文的例子为多服务器配置下的消费生产和消费者配置. 参考资料:https://docs.spring.io/sp ...

  9. springcloud五大组件?注解_spring cloud实现简单的微服务架构

    "读书足以怡情,足以长才.读史使人明智,读诗使人灵秀,数学使人周密,科学使人深刻,伦理学使人庄重,过度学习使人疯魔:凡有所学,皆成性格." --弗朗西斯·培根<论学习> ...

最新文章

  1. js 变量、函数提升
  2. Ubuntu 16.04源码编译安装Apache 2.4.25教程
  3. mysql连接超过8小时错误_mysql超过8小时数据库断掉连接的简单解决办法
  4. 负载均衡设备oracle,Oracle RAC 服务器端联接负载均衡(Load Balance)
  5. 一文彻底搞懂Cookie、Session、Token到底是什么
  6. 颜色模型和颜色应用---颜色选择及其应用
  7. html在线播放avi视频,Doinb涉嫌踩一捧一?暖心安慰小天,拿kanavi做比较却遭到非议...
  8. apache缺省banner_NSFOCUS建议您采取以下措施以降低威胁: * 修改源代码或者配置文件改变SSH服务的缺省banner。...
  9. HDU 5933 2016CCPC杭州 A: ArcSoft's Office Rearrangement
  10. 一些实用但不为人知的Unix命令
  11. 阶段3 2.Spring_08.面向切面编程 AOP_7 通用化切入点表达式
  12. 190322每日一句
  13. vfp报表纸张设置_谈VFP9的自定义纸张的设计!
  14. Arduino--电容式土壤湿度传感器使用及原理
  15. poj2112,最大流,最优挤奶方案
  16. 苹果手机换了屏显示无服务器,苹果手机出现“无法验证此 iPhone 屏幕是正品”怎么办...
  17. 篮球记分牌c语言程序和报告,跪求:设计一款篮球记分牌,包括C语言程序和proteus的仿真图,最好附带设计报告.。邮箱liuzhonghuaol@126.com。...
  18. 前端css之 浮动 自学日记
  19. 行政区划代码2020(SQL)--(下)
  20. echarts 矩形填充占比图treemap

热门文章

  1. dribbble加速vpn_关于Dribbble设计的几点思考
  2. 分析:人名搜索Spock会成下个谷歌吗
  3. [DataAnalysis]关联分析
  4. 设计改变世界,2022年戴森设计大奖作品征集正式开启
  5. 培育企业安全基因 永信至诚召开2016年企业安全人才能力提升解决方案发布会...
  6. 清华毕业生都去哪儿了
  7. java传感器_传感器 - javawebsoa - 博客园
  8. 米特科技零信任新品 MetelTrust 智能 CPE 正式发布!
  9. 计算机窗口置顶,将想要的窗口一直置顶的具体操作步骤介绍
  10. 语言学句法分析树形图怎么画_教你如何能画语言学树型图