首页 > 其他分享 >SpringBoot快速整合RabbitMq小案例

SpringBoot快速整合RabbitMq小案例

时间:2023-06-15 21:56:00浏览次数:44  
标签:rabbitTemplate SpringBoot ITEM exchange RabbitMq 案例 message public String

对于一个直接创建的springBoot项目工程来说,可以按照以下步骤使用rabbitmq

  • 添加依赖:添加rabbitMQ的依赖。
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
  • 配置连接:在配置文件中配置虚拟主机、端口号、用户名、密码等信息。
spring:
  rabbitmq:
    host: localhost
    port: 5672
    virtual-host: {你的虚拟主机}
    username: {你的用户名}
    password: {你的密码}

  • 创建生产者:导入对应依赖后,使用rabbitTemplate,并调用convertAndSend来发送消息。
@Autowired
private RabbitTemplate rabbitTemplate;
public void sendMessage(String message) {
    rabbitTemplate.convertAndSend("exchangeName", "routingKey", message);
}

来发送消息。

  • 创建消费者:使用@RabbitListener注解在消息处理方法上,指定监听的队列名称,并在方法参数中接收消息。
@RabbitListener(queues = "queueName")
public void receiveMessage(String message) {
    // 处理接收到的消息
    System.out.println("Received message: " + message);
}

  • 编写配置类,使用@Bean注解在对应的方法上把方法的返回值(将队列,交换机等信息)交由spring管理。
// 交换机名称
    public static final String ITEM_TOPIC_EXCHANGE = "item_topic_exchange";
    // 队列名称
    public static final String ITEM_QUEUE = "item_queue";
    //声明交换机
    @Bean
    public Exchange exchange(){
        return ExchangeBuilder.topicExchange(ITEM_TOPIC_EXCHANGE).durable(true).build();
    }
    //声明队列
    @Bean
    public Queue queue(){
        return QueueBuilder.durable(ITEM_QUEUE).build();
    }
    //队列绑定到交换机
    @Bean
    public Binding binding(Queue queue,Exchange exchange){
        return BindingBuilder.bind(queue).to(exchange).with("item.#").noargs();
    }
  • 启动应用程序或者写测试类。
    @Autowired
    RabbitTemplate rabbitTemplate;
@Test
    public void testSendMessage(){
        rabbitTemplate.convertAndSend(RabbitmqConfig.ITEM_TOPIC_EXCHANGE, "item.insert", "新增商品的消息~~");
        System.out.println("消息发送成功");
    }

标签:rabbitTemplate,SpringBoot,ITEM,exchange,RabbitMq,案例,message,public,String
From: https://www.cnblogs.com/kuangsun125/p/17484217.html

相关文章

  • springboot项目启动
    报错:Couldnotresolveplaceholder'config.info'invalue"${config.info}"项目的bootstrap.yml配置文件的file-extension:yaml#这里我们获取的yaml格式的配置需要跟nacos配置列表的DataId结尾保持一致 ......
  • SpringBoot集成kafka
    环境springboot2.7+kafka3.0。kafka安装请自行百度,话不多说直接上代码。1、添加maven依赖<dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId></dependency> 2、application.yml添加kafka配置sp......
  • k8s实战案例之基于StatefulSet控制器运行MySQL一主多从
    1、前言Pod调度运⾏时,如果应⽤不需要任何稳定的标示、有序的部署、删除和扩展,则应该使⽤⼀组⽆状态副本的控制器来部署应⽤,例如Deployment或ReplicaSet更适合⽆状态服务需求,⽽StatefulSet适合管理所有有状态的服务,⽐如MySQL、MongoDB集群等。2、StatefulSet控制器运行MySQL一......
  • SpringBoot整合Redis
    第一步:导入坐标 第二步:在application.yml中进行相关配置第三步:使用对应的API对操作接口进行操作 操作 key-value格式的 操作 hash格式的  ......
  • 阿里云斩获 4 项年度云原生技术服务优秀案例
    日前,在ICT中国·2023高层论坛-云原生产业发展论坛上,由阿里云容器服务提供技术支持的“数禾科技”和“智联招聘”两大案例以及阿里云云原生AI套件、云原生FinOps成本分析套件两大产品技术方案,共同获得2023年度云原生应用实践先锋——云原生技术服务优秀案例。云原生是一......
  • 阿里云斩获 4 项年度云原生技术服务优秀案例
    日前,在ICT中国·2023高层论坛-云原生产业发展论坛上,由阿里云容器服务提供技术支持的“数禾科技”和“智联招聘”两大案例以及阿里云云原生AI套件、云原生FinOps成本分析套件两大产品技术方案,共同获得2023年度云原生应用实践先锋——云原生技术服务优秀案例。云原生是......
  • springboot集成kafka
    导入spring-kafka依赖信息点击查看代码<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--kafkfa-->......
  • MySQL 数据库表字段字符集编码不一致导致隐式转换索引失效案例分析
       有网友咨询,丢过来一段sql语句,说是执行一次耗时10多分钟,让帮忙看看。表数据量在5万左右,数据量不大,首先确认表统计信息都是准确的,查询sql以及执行计划如下:  可以看到嵌套循环join部分全表扫描,缺失索引,应该在join条件列hoist_code、device_code建立索引,但是网友反馈......
  • springboot文件上传
    前言需要实现文件上传功能需要MultipartResolver接口的实现类的实例,这样才可以实现文件上传而MultipartResolver有两个实现类:StandardServletMultipartResolver:springboot中以自动配置完成,直接使用即可CommonsMultipartResolver:springmvc中使用的是CommonsMultipartReso......
  • Django中间件案例由浅入深+实战
    Django中间件案例由浅入深+实战原文链接:https://pfertyk.me/2020/04/getting-started-with-django-middleware/Django具有许多有用的功能特色,其中之一便是中间件。在本文中,我将简要解释中间件如何工作以及如何开始编写自己的中间件。这篇文章中包含的源代码可在GitHub上找到......