当前位置: 首页 > 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);}
}

相关文章:

  • 【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-内存管理
  • 钉钉红包性能优化之路
  • 台州cms模板建站/网站排名优化客服
  • 软件开发培训机构课程/东莞百度seo排名
  • 网站模版 百度云/下列关于友情链接说法正确的是
  • 如何修改网站模板内容/怎么做自媒体
  • 网站开发前端框架/外贸怎么找客户资源
  • 企业做网站推广产品需要多少钱/软文类型