现在的位置: 首页 > 编程语言 > 正文

SpringBoot集成RabbitMQ实现用户注册的示例代码

2020年02月13日 编程语言 ⁄ 共 2123字 ⁄ 字号 评论关闭

上一篇已经介绍了什么是rabbitmq以及和springboot集成方法,也介绍了springboot集成邮件的方式,不了解的可以先看以前写的文章。

三者集成

上一篇springboot集成邮件注册的已经介绍了,本篇文章基于这个介绍,我们只需要修改下面几处即可完成3者集成。

实现步骤

添加rabbitmq依赖

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>

添加rabbitmq配置

spring: rabbitmq: addresses: 127.0.0.1 username: guest password: guest port: 5672

修改controller类

package com.lytw13.demo.controller;import com.lytw13.demo.model.TbUser;import com.lytw13.demo.service.UserService;import com.lytw13.demo.util.MailUtil;import org.springframework.amqp.rabbit.annotation.RabbitListener;import org.springframework.amqp.rabbit.core.RabbitTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("user")public class UserController { @Autowired UserService userService; @Autowired RabbitTemplate rabbitTemplate; @PostMapping("save") public void save(@RequestBody TbUser user) { userService.save(user); rabbitTemplate.convertAndSend("email.direct","email.direct",user); }}

修改service实现类

public void save(TbUser user) { long startTime = System.currentTimeMillis(); userMapper.insert(user); long endTime = System.currentTimeMillis(); System.out.println("耗时:"+(endTime-startTime)); } @RabbitListener(queues = "email.direct") public void sendEmail(TbUser user) { List<String> fileList = new ArrayList<>(); fileList.add("E:\\others\\MyBlog\\新建文本文档1.txt"); fileList.add("E:\\others\\MyBlog\\新建文本文档.txt"); MailUtil.sendHtmlTemplateMail(user.getEmail(),user.getName(),fileList); }

现在就完成了,当用户发送注册信息的时候,会推送给rabbitmq,然后我们只需要定义个方法添加上@RabbitListener(queues = "email.direct")注解进行实时监听, 注意主启动类上需要添加@EnableRabbit开启rabbit ,当监听到用户注册的时候,不需要一直等待发送邮件成功,就可以先将页面返回给用户,而不是一直等待,页面一直加载不了(浏览器一直转圈),使用户体验变差,这就是用rabbitmq实现异步操作的最简单用法。

测试

这里就直接截个图,可以对比下上一篇同步串行用户注册发送邮件耗时。

具体代码我已经上传到了github,如果有问题可以参考下。前往

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: SpringBoot集成RabbitMQ实现用户注册的示例代码

以上就上有关SpringBoot集成RabbitMQ实现用户注册的示例代码的全部内容,学步园全面介绍编程技术、操作系统、数据库、web前端技术等内容。

抱歉!评论已关闭.