RabbitMQ的springboot项目集成使用-01

简介: RabbitMQ的springboot项目集成使用-01

项目业务使用【发布订阅模式】
image.png
image.png
image.png
image.png
image.png
image.png
1.maven


org.springframework.amqp
spring-rabbit

————————————————

2.mq连接信息

MQ连接

rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: guest
    password: guest
    #配置RabbitMq虚拟主机的路径(默认为“/" 可以省略)
    virtual-host: /

3.RabbitMQConfig
————————————————
package com.test.config;

import org.springframework.amqp.core.*;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**

  • MQ消息队列配置
  • 1.创建交换机
  • 2.创建队列
  • 3.将交换机与队列进行绑定
    *
  • @author wangwei
  • @date 2023-08-03 13:53:00
    /
    @Configuration
    public class RabbitMQConfig {
    /*

    • 定制json 格式的消息转换器
      */
      @Bean
      public MessageConverter messageConverter() {
      return new Jackson2JsonMessageConverter();
      }

      /*消息队列 对象

    • 1.创建名称为 fanout_queue_notify 的消息队列
    • 2.目前集成mq做 任务下发通知的消息队列
    • @return
      */
      @Bean
      public Queue fanoutQueryNotify() {
      return new Queue("fanout_queue_notify1");
      }

      /*

    • 交换机对象
    • 1.fanout创建一个交换机Channels
      */
      @Bean
      public FanoutExchange fanoutExchange() {
      //创建一个fanout模式的交换机(发布订阅模式)
      return new FanoutExchange("fanout_exchange1");
      }

      /*

    • 将创建的队列绑定到对应的交换机上
      */
      @Bean
      public Binding bindingNotify() {
      return BindingBuilder.bind(fanoutQueryNotify()).to(fanoutExchange());
      }

}

4.消息发送者
package com.ruoyi.config;

import org.springframework.amqp.core.*;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**

  • MQ消息队列配置
  • 1.创建交换机
  • 2.创建队列
  • 3.将交换机与队列进行绑定
    *
  • @author wangwei
  • @date 2023-08-03 13:53:00
    /
    @Configuration
    public class RabbitMQConfig {
    /*

    • 定制json 格式的消息转换器
      */
      @Bean
      public MessageConverter messageConverter() {
      return new Jackson2JsonMessageConverter();
      }

      /*消息队列 对象

    • 1.创建名称为 fanout_queue_notify 的消息队列
    • 2.目前集成mq做 任务下发通知的消息队列
    • @return
      */
      @Bean
      public Queue fanoutQueryNotify() {
      return new Queue("fanout_queue_notify1");
      }

      /*

    • 交换机对象
    • 1.fanout创建一个交换机Channels
      */
      @Bean
      public FanoutExchange fanoutExchange() {
      //创建一个fanout模式的交换机(发布订阅模式)
      return new FanoutExchange("fanout_exchange1");
      }

      /*

    • 将创建的队列绑定到对应的交换机上
      */
      @Bean
      public Binding bindingNotify() {
      return BindingBuilder.bind(fanoutQueryNotify()).to(fanoutExchange());
      }

}
5.消息消费者

package com.ruoyi.consumption;

import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Service;

/**

  • 消息消费者
  • @author wangwei
  • @date 2023-08-03 13:53:00
    */
    @Service
    public class MQConsumptionService {

    //发布订阅模式 @RabbitListener 可以指定当前方法监听哪一个队列
    @RabbitListener(queues = "fanout_queue_notify")
    public void subConsumptionNotify(Message message){

     //消息内容在消息队列里面是以  字节形式存放的
     byte[] body = message.getBody();
     String stringMsg = new String(body);
     //todo 待详细集成松江反诈  的具体业务,这里只是测试接收消息的案例
     System.out.printf("我是消息接受者/消费者,接收到的队列消息内容为:   =======》"+stringMsg);
    

    }
    }

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
26天前
|
XML Java 应用服务中间件
SpringBoot项目打war包流程
本文介绍了将Spring Boot项目改造为WAR包并部署到外部Tomcat服务器的步骤。主要内容包括:1) 修改pom.xml中的打包方式为WAR;2) 排除Spring Boot内置的Tomcat依赖;3) 添加Servlet API依赖;4) 改造启动类以支持WAR部署;5) 打包和部署。通过这些步骤,可以轻松地将Spring Boot应用转换为适合外部Tomcat服务器的WAR包。
124 64
SpringBoot项目打war包流程
|
12天前
|
Java 关系型数据库 MySQL
SpringBoot 通过集成 Flink CDC 来实时追踪 MySql 数据变动
通过详细的步骤和示例代码,您可以在 SpringBoot 项目中成功集成 Flink CDC,并实时追踪 MySQL 数据库的变动。
104 43
|
14天前
|
监控 前端开发 Java
SpringBoot集成Tomcat、DispatcherServlet
通过这些配置,您可以充分利用 Spring Boot 内置的功能,快速构建和优化您的 Web 应用。
45 21
|
30天前
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
130 36
|
21天前
|
安全 数据安全/隐私保护
DzzOffice:太完美啦,开源免费Word、Exce、PPT,多人同时协作,最主要还有免费的网盘,将这个项目集成到你的产品里面,项目立刻拥有整套offce解决方案
嗨,大家好,我是小华同学。DzzOffice是一个免费开源的企业协同办公平台,适合中小型企业及团队使用,功能涵盖网盘、文档、表格、演示文稿等,支持企业微信和钉钉移动办公,保障数据私有部署安全。 关注我们,获取更多优质开源项目和高效工作学习方法。
|
21天前
|
自然语言处理 IDE Java
SpringBoot start.aliyun.com创建项目,解决properties乱码的问题
通过确保文件和开发环境的编码一致,配置 Maven 编码,设置 Spring Boot 应用和嵌入式服务器的编码,可以有效解决 properties 文件的乱码问题。以上步骤可以帮助开发者确保在 Spring Boot 项目中正确处理和显示多语言字符,避免因编码问题导致的乱码现象。
35 5
|
1月前
|
监控 Java Nacos
使用Spring Boot集成Nacos
通过上述步骤,Spring Boot应用可以成功集成Nacos,利用Nacos的服务发现和配置管理功能来提升微服务架构的灵活性和可维护性。通过这种集成,开发者可以更高效地管理和部署微服务。
196 17
|
1月前
|
XML JavaScript Java
SpringBoot集成Shiro权限+Jwt认证
本文主要描述如何快速基于SpringBoot 2.5.X版本集成Shiro+JWT框架,让大家快速实现无状态登陆和接口权限认证主体框架,具体业务细节未实现,大家按照实际项目补充。
80 11
|
1月前
|
缓存 安全 Java
Spring Boot 3 集成 Spring Security + JWT
本文详细介绍了如何使用Spring Boot 3和Spring Security集成JWT,实现前后端分离的安全认证概述了从入门到引入数据库,再到使用JWT的完整流程。列举了项目中用到的关键依赖,如MyBatis-Plus、Hutool等。简要提及了系统配置表、部门表、字典表等表结构。使用Hutool-jwt工具类进行JWT校验。配置忽略路径、禁用CSRF、添加JWT校验过滤器等。实现登录接口,返回token等信息。
346 12
|
1月前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
81 8

热门文章

最新文章