您好,登錄后才能下訂單哦!
這篇文章給大家介紹SpringBoot中怎么利用RabbitMQ實現用戶注冊,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
實現步驟
添加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實現異步操作的最簡單用法。
關于SpringBoot中怎么利用RabbitMQ實現用戶注冊就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。