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

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.dtcms.com/a/224181.html

相关文章:

  • 【AUTOSAR OS】计数器Counter机制解析:定义、实现与应用
  • 注销微软账户
  • 医疗多模态共情推理与学习一体化网络构成初探
  • AppTrace 视角下 App 一键拉起:提升应用转化率的高效方案​
  • 腾讯云推出云开发AI Toolkit,国内首个面向智能编程的后端服务
  • 【Unity】AudioSource超过MaxDistance还是能听见
  • 保持本地 Git 项目副本与远程仓库完全同步
  • 利用nginx完成iframe请求的身份认证
  • kafka核心组件
  • 系统思考:化繁为简的艺术
  • lstm 长短期记忆 视频截图 kaggle示例
  • 202403-02-相似度计算 csp认证
  • 矩阵快速幂算法快速上手
  • mkcert实现本地https
  • 界面形成能的理解
  • 【android bluetooth 协议分析 03】【蓝牙扫描详解 1】【扫描关键函数 btif_dm_search_devices_evt 分析】
  • 基于大模型的数据库MCP Server设计与实现
  • 电子电器架构 --- OTA测试用例分析(上)
  • WIN32-内存管理
  • 钉钉红包性能优化之路
  • Maven 安装与配置指南(适用于 Windows、Linux 和 macOS)
  • 数字化浪潮下:信息化教学模式与人工智能的协同创新发展研究
  • 大数据处理中数据倾斜的深度解析与优化实践
  • java程序从服务器端到Lambda函数的迁移与优化
  • 杨辉三角系数
  • [LitCTF 2024]SAS - Serializing Authentication
  • 智慧物流园区整体解决方案
  • Java 中 Lock 接口详解:灵活强大的线程同步机制
  • AI笔记 - 网络模型 - mobileNet
  • 【沉浸式求职学习day51】【发送邮件】【javaweb结尾】