当前位置: 首页 > article >正文

38.springboot使用rabbitmq

pom依赖 

<!--amqp依赖,包含RabbitMQ--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>

配置文件添加

spring:application:name: message-servicerabbitmq:host: localhostport: 5672virtual-host: / # 虚拟主机,对每个用户进行隔离username: guestpassword: guest# 日志配置
logging:pattern:dateformat: yyyy-MM-dd HH:mm:ss:SSSlevel:com.xkj.org: info# rabbitmq消息日志org.springframework.amqp: DEBUG

配置队列对象

package com.xkj.org.config;import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** 通过配置类声明队列*/
@Configuration
public class RabbitMQConfig {final static String QUEUE_NAME = "user.queue";@Beanpublic Queue userQueue() {return new Queue(QUEUE_NAME, true);}
}

发送消息

package com.xkj.org.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xkj.org.entity.User;
import com.xkj.org.mapper.UserMapper;
import com.xkj.org.service.IUserService;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {final static String QUEUE_NAME = "user.queue";@Autowiredprivate RabbitTemplate rabbitTemplate;@Overridepublic User getById(Integer userId) {return baseMapper.selectById(userId);}@Overridepublic void register(User user) {baseMapper.insert(user);//发生消息到rabbitmq,异步操作String message = String.format("你好%s,恭喜你注册成功", user.getUsername());rabbitTemplate.convertAndSend(QUEUE_NAME, message);}}

消费者

package com.xkj.org.listener;import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;@Component
@Slf4j
public class UserMsgListener {final static String QUEUE_NAME = "user.queue";@RabbitListener(queues = QUEUE_NAME)public void listenSimpleQueueMessage(String msg) {log.info("接收到消息为:【{}】", msg);}
}

http://www.lryc.cn/news/2395773.html

相关文章:

  • 弱光环境下如何手持相机拍摄静物:摄影曝光之等效曝光认知
  • Selenium Manager中文文档
  • WEB安全--SQL注入--MSSQL注入
  • 【HTML】基础学习【数据分析全栈攻略:爬虫+处理+可视化+报告】
  • SAP Business ByDesign:无锡哲讯科技赋能中大型企业云端数字化转型
  • 华为OD机考2025B卷 - 无向图染色(Java Python JS C++ C )
  • 计算机网络学习20250528
  • Next.js路由导航完全指南
  • 五、web安全--XSS漏洞(1)--XSS漏洞利用全过程
  • 【C++高级主题】命令空间(六):重载与命名空间
  • 利用 Python 爬虫获取淘宝商品详情
  • 动态拼接内容
  • Tomcat运行比较卡顿进行参数调优
  • java直接获取MyBatis将要执行的动态sql命令(不是拦截器方式)
  • C++四种类型转换方式
  • Canvas: trying to draw too large(256032000bytes) bitmap.
  • 【深度学习-pytorch篇】5. 卷积神经网络与LLaMA分类模型
  • matlab全息技术中的菲涅尔仿真成像
  • 基于对比学习的推荐系统开发方案,使用Python在PyCharm中实现
  • 网络协议之办公室网络是怎样的?
  • 鸿蒙OSUniApp PWA开发实践:打造跨平台渐进式应用#三方框架 #Uniapp
  • uni-data-picker级联选择器、fastadmin后端api
  • 8天Python从入门到精通【itheima】-62~63
  • 运维 pgsql 安装完后某次启动不了
  • Linux基本指令/下
  • matlab中绘图函数plot
  • 在线音乐服务器测试报告
  • spark-AQE/Tungsten介绍及其触发条件
  • leetcode-hot-100 (矩阵)
  • 深度学习中常见的超参数对系统的影响