国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot項目整合Redis,Rabbitmq發(fā)送、消費、存儲郵件

這篇具有很好參考價值的文章主要介紹了SpringBoot項目整合Redis,Rabbitmq發(fā)送、消費、存儲郵件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??前言

本文主要是【Rabbitmq】——SpringBoot項目整合Redis,Rabbitmq發(fā)送、消費、存儲郵件的文章,如果有什么需要改進的地方還請大佬指出??

??作者簡介:大家好,我是聽風與他??
??博客首頁:CSDN主頁聽風與他
??每日一句:狠狠沉淀,頂峰相見

SpringBoot項目整合Redis,Rabbitmq發(fā)送、消費、存儲郵件

1.導入mail,redis,rabbitmq的依賴

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

2.配置application.yml文件

spring:
  mail:
    host: smtp.163.com
    username: 15671190765@163.com
    password: XXX   #此為郵箱的snmp密碼
  rabbitmq:
    addresses: localhost
    username: admin #rabbitmq的賬號名密碼均為admin
    password: admin 
    virtual-host: / #虛擬主機采用默認的/
  data:
    redis:
      port: 6379
      host: localhost #redis均為默認配置及端口,不配置yml也可

3.Rabbitmq配置類:RabbitConfiguration

package com.rabbitmqemail.config;

import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.QueueBuilder;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
public class RabbitConfiguration {

    @Bean
    public MessageConverter messageConverter(){
        return new Jackson2JsonMessageConverter();
    }

    @Bean
    public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory, MessageConverter converter) {
        RabbitTemplate template = new RabbitTemplate(connectionFactory);
        template.setMessageConverter(converter);
        return template;
    }

    //給Bean隊列取名為郵件隊列
    @Bean("emailQueue")
    public Queue emailQueue(){
        return QueueBuilder
                .durable("mail")  //給郵件隊列取名為email
                .build();
    }


}

Rabbitmq監(jiān)聽類:MailQueueListener

package com.rabbitmqemail.listener;

import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component;

import java.util.Map;
@Component
@RabbitListener(queues = "mail") //指定一下消息隊列,該消息隊列是mail消息隊列
public class MailQueueListener{

    @Autowired
    JavaMailSender sender;

    @Value("${spring.mail.username}")
    String username;

    @RabbitHandler
    public void sendMailMessage(Map<String,Object> data){
//        System.out.println(data.get("email")+" "+data.get("code"));
        String email = (String) data.get("email");
        Integer code = (Integer) data.get("code");
        SimpleMailMessage  message= createMessage("歡迎注冊我們的網(wǎng)站","您的驗證碼為"+code+",有效時間三分鐘,為了保障您的安全,請勿向他人泄露驗證碼信息。",email);
        System.out.println("message1:"+message.getText());
        if (message == null) return;
        sender.send(message);
    }

    private SimpleMailMessage createMessage(String title,String content,String email){
        SimpleMailMessage message = new SimpleMailMessage();
        message.setSubject(title);  //主題
        message.setText(content);   //內容
        message.setTo(email);       //發(fā)送目標郵箱
        message.setFrom(username);  //源發(fā)送郵箱
        return message;
    }
}

接口類:emailService

package com.rabbitmqemail.service;

public interface emailService {
    String EmailVerifyCode(String email);
}

接口實現(xiàn)類:emailServiceImpl

package com.rabbitmqemail.service.impl;


import ch.qos.logback.classic.pattern.MessageConverter;
import com.alibaba.fastjson2.JSONObject;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmqemail.service.emailService;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;

import java.util.Map;
import java.util.Random;
import java.util.concurrent.TimeUnit;

@Service
public class emailServiceImpl implements emailService {

    @Autowired
    AmqpTemplate amqpTemplate; //將消息隊列注冊為bean

    @Autowired
    StringRedisTemplate redisTemplate;


    @Override
    public String EmailVerifyCode(String email) {
        Random random = new Random();
        int code = random.nextInt(899999)+100000;  //生成六位數(shù)的驗證碼
//        System.out.println("email:"+email+" code:"+code);
        Map<String,Object> data = Map.of("email",email,"code",code);
        amqpTemplate.convertAndSend("mail",data); //向消息隊列中發(fā)送數(shù)據(jù)
        redisTemplate.opsForValue()
                .set(email,String.valueOf(code),3, TimeUnit.MINUTES);
        //用redis來存取數(shù)據(jù)
        return null;
    }
}

測試類:RabbitmqEmailApplicationTests

package com.rabbitmqemail;

import com.rabbitmqemail.service.impl.emailServiceImpl;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class RabbitmqEmailApplicationTests {


    @Autowired
    private emailServiceImpl emailService;

    @Test
    void contextLoads() {
        emailService.EmailVerifyCode("2482893650@qq.com");
    }

}

測試結果:此時指定郵箱已收到驗證碼

SpringBoot項目整合Redis,Rabbitmq發(fā)送、消費、存儲郵件,java,redis,rabbitmq

測試項目開源倉庫:

https://gitee.com/zhang-zilong_zzl/Rabbitmq-email

??文章末尾

SpringBoot項目整合Redis,Rabbitmq發(fā)送、消費、存儲郵件,java,redis,rabbitmq文章來源地址http://www.zghlxwxcb.cn/news/detail-758998.html

到了這里,關于SpringBoot項目整合Redis,Rabbitmq發(fā)送、消費、存儲郵件的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • springboot整合rabbitmq的發(fā)布確認,消費者手動返回ack,設置備用隊列,以及面試題:rabbitmq確保消息不丟失

    springboot整合rabbitmq的發(fā)布確認,消費者手動返回ack,設置備用隊列,以及面試題:rabbitmq確保消息不丟失

    目錄 1.生產者發(fā)消息到交換機時候的消息確認 2.交換機給隊列發(fā)消息時候的消息確認 3.備用隊列 3.消費者手動ack ? rabbitmq的發(fā)布確認方式,可以有效的保證我們的數(shù)據(jù)不丟失。 ? 消息正常發(fā)送的流程是:生產者發(fā)送消息到交換機,然后交換機通過路由鍵把消息發(fā)送給對應的隊

    2024年02月09日
    瀏覽(28)
  • SpringBoot項目整合RabbitMQ

    消息隊列(Message Queue)是分布式系統(tǒng)中常用的組件,它允許不同的應用程序之間通過發(fā)送和接收消息進行通信。Spring Boot提供了簡單且強大的方式來整合消息隊列,其中包括RabbitMQ、ActiveMQ、Kafka等多種消息隊列實現(xiàn)。 本文將以RabbitMQ為例,詳細介紹如何使用Spring Boot來整合消

    2024年02月09日
    瀏覽(29)
  • 最近項目上需要發(fā)送短信整理了一篇文章 SpringBoot整合阿里云發(fā)送短信

    最近項目上需要發(fā)送短信整理了一篇文章 SpringBoot整合阿里云發(fā)送短信

    阿里云短信服務網(wǎng)址:阿里云登錄 - 歡迎登錄阿里云,安全穩(wěn)定的云計算服務平臺 第一步:申請簽名(一般申請時長在1-2小時之間)特別注意:場景說明不要亂填以免申請不通過 ?第二步:申請短信模板(一般申請時長在1-2小時之間)特別注意:場景說明不要亂填以免申請不

    2024年02月06日
    瀏覽(14)
  • SpringBoot實戰(zhàn)項目整合RabbitMQ+ElaticSearch實現(xiàn)SKU上下架功能

    SpringBoot實戰(zhàn)項目整合RabbitMQ+ElaticSearch實現(xiàn)SKU上下架功能

    ?? @ 作者: Eric ?? @ 主頁: https://blog.csdn.net/weixin_47316183?type=blog ?? @ 主題: SpringBoot實戰(zhàn)項目整合RabbitMQ+ElaticSearch實現(xiàn)SKU上下架功能 ?? @ 創(chuàng)作時間: 2023年07月03日 最終實現(xiàn)效果:針對SKU的上下架 上架效果: 1、后臺選擇 SKU ,點擊上架,該 SKU 修改為 上架 狀態(tài) 2、同時向

    2024年02月11日
    瀏覽(21)
  • 記一次rabbitmq消息發(fā)送成功,消費丟失問題

    記一次rabbitmq消息發(fā)送成功,消費丟失問題

    測試數(shù)據(jù)歸檔,偶現(xiàn)數(shù)據(jù)未歸檔 idea線上調試,log日志,數(shù)據(jù)庫消息發(fā)送記錄,代碼分塊重復執(zhí)行看哪塊出的問題,結果均無問題,最后使用rabbitmq trace日志,發(fā)現(xiàn)問題所在 1. 什么是Trace Trace 是Rabbitmq用于記錄每一次發(fā)送的消息,方便使用Rabbitmq的開發(fā)者調試、排錯。可通過插

    2024年02月16日
    瀏覽(26)
  • SpringBoot實戰(zhàn)項目整合RabbitMQ+ElaticSearch實現(xiàn)SKU上下架功能_尚上優(yōu)選整合es+mq實現(xiàn)商品上下架(1)

    SpringBoot實戰(zhàn)項目整合RabbitMQ+ElaticSearch實現(xiàn)SKU上下架功能_尚上優(yōu)選整合es+mq實現(xiàn)商品上下架(1)

    文章目錄 前言 1、前置條件 2、搭建service-search模塊 3、開發(fā)功能接口 3.1 添加遠程調用方法 3.2、創(chuàng)建遠程調用模塊 3.3、開發(fā)service-search 模塊接口 4、RabbitMQ 5、完善SKU管理商品上下架 5.1、商品服務 5.2、es服務 6、最終測試 總結 最終實現(xiàn)效果:針對SKU的上下架 上架效果: 1、后

    2024年04月17日
    瀏覽(29)
  • Centos安裝RabbitMQ,JavaSpring發(fā)送RabbitMQ延遲延時消息,JavaSpring消費RabbitMQ消息

    Centos安裝RabbitMQ,JavaSpring發(fā)送RabbitMQ延遲延時消息,JavaSpring消費RabbitMQ消息

    erlang 和 rabbitmq 版本說明 https://www.rabbitmq.com/which-erlang.html 確認需要安裝的mq版本以及對應的erlang版本。 RabbitMQ下載地址: https://packagecloud.io/rabbitmq/rabbitmq-server Erlang下載地址: https://packagecloud.io/rabbitmq/erlang RabbitMQ延遲消息插件下載 https://github.com/rabbitmq/rabbitmq-delayed-message-exc

    2024年02月08日
    瀏覽(23)
  • Idea+maven+springboot項目搭建系列--2 整合Rabbitmq完成客戶端&服務器端消息收發(fā)

    Idea+maven+springboot項目搭建系列--2 整合Rabbitmq完成客戶端&服務器端消息收發(fā)

    前言:本文通過springBoot -maven 框架,對Rabbitmq 進行整合,完成客戶端消息的發(fā)送和消費; 1 為什么要使用Rabbitmq: RabbitMQ 是一個可靠的、靈活的、開源的消息中間件,具有以下優(yōu)點: 異步通信:RabbitMQ 支持異步通信,使得消息發(fā)送者和接收者能夠異步處理,提高了系統(tǒng)性能和

    2024年02月07日
    瀏覽(31)
  • Java整合RabbitMQ實現(xiàn)生產消費(7種通訊方式)

    Java整合RabbitMQ實現(xiàn)生產消費(7種通訊方式)

    RabbitMQ環(huán)境,參考RabbitMQ環(huán)境搭建 Java版本:JDK1.8 Maven版本:apache-maven-3.6.3 開發(fā)工具:IntelliJ IDEA 創(chuàng)建maven項目 pom.xml文件引入RabbitMQ依賴 即一個生產者可以向一個隊列發(fā)送消息,一個消費者可以嘗試從一個隊列接收數(shù)據(jù)。如下圖: 與簡單通訊一樣,當消費能力不足或想要提高

    2024年02月04日
    瀏覽(26)
  • Spring整合RabbitMQ-配制文件方式-2-推模式消費者

    推模式的消費者 在推模式中使用可以兩種實現(xiàn): 使用ChannelAwareMessageListener. 除消息外,還提供了Channel這個對象,通過channel可以有更大的靈活性。 使用MessageListener 基本的消息的臨時。普通的場景基本夠用。 此處以ChannelAwareMessageListener為樣例: spring-rabbit.xml 容器啟動類 首先

    2024年02月09日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包