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

Rabbitmq发送邮件并消费邮件

📑前言

本文主要是【Rabbitmq】——Rabbitmq发送邮件并消费邮件的文章,如果有什么需要改进的地方还请大佬指出⛺️

🎬作者简介:大家好,我是听风与他🥇
☁️博客首页:CSDN主页听风与他
🌄每日一句:狠狠沉淀,顶峰相见

目录

    • 📑前言
  • Rabbimq发送邮件并消费邮件
    • 1.配置application.yml文件
    • 2.定义消息队列的配置:RabbitConfiguration
      • 运行后打开rabbitmq:我们发现已经创建了yyds队列
    • 3.监听类:TestListener
    • 测试类进行测试
    • 📑文章末尾

Rabbimq发送邮件并消费邮件

1.配置application.yml文件

spring:
  rabbitmq:
    virtual-host: /test
    username: admin
    password: admin
    addresses: localhost

2.定义消息队列的配置:RabbitConfiguration

package com.rabbitmqtest.config;

import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabbitConfiguration {
    /**
     * 导包时候注意是amqp这个包
     * @return
     */
    @Bean("directExchange")  //定义交换机Bean,可以很多个
    public Exchange exchange(){
        //如果没有会自动进行创建
        return ExchangeBuilder.directExchange("amq.direct").build();
    }

    @Bean("yydsQueue")     //定义消息队列
    public Queue queue(){
        return QueueBuilder
                .nonDurable("yyds")   //非持久化类型
                .build();
    }

    @Bean("binding")
    public Binding binding(@Qualifier("directExchange") Exchange exchange,
                           @Qualifier("yydsQueue") Queue queue){
        //将我们刚刚定义的交换机和队列进行绑定
        return BindingBuilder
                .bind(queue)   //绑定队列
                .to(exchange)  //到交换机
                .with("my-yyds")   //使用自定义的routingKey
                .noargs();
    }

}

运行后打开rabbitmq:我们发现已经创建了yyds队列

在这里插入图片描述

3.监听类:TestListener

package com.rabbitmqtest.listener;

import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class TestListener {

    @RabbitListener(queues = "yyds")
    public void test(Message message){
        System.out.println(new String(message.getBody()));
    }
}

测试类进行测试

package com.rabbitmqtest;

import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class RabbitmqTestApplicationTests {

    //RabbitTemplate为我们封装了大量的RabbitMQ操作,已经由Starter提供,因此直接注入使用即可
    @Resource
    RabbitTemplate template;


    @Test
    void publisher() {
        //使用convertAndSend方法一步到位,参数基本和之前是一样的
        //最后一个消息本体可以是Object类型,真是大大的方便
        template.convertAndSend("amq.direct", "my-yyds", "邮件信息");
    }

}

结果:

//控制台会打印:邮件信息

📑文章末尾

在这里插入图片描述


http://www.kler.cn/a/149336.html

相关文章:

  • Diffusion Policy——斯坦福机器人UMI所用的扩散策略:从原理到其编码实现(含Diff-Control、ControlNet详解)
  • 深度学习——优化算法、激活函数、归一化、正则化
  • Elasticsearch 实战应用:高效搜索与数据分析
  • 搭建深度学习开发环境
  • 深度学习之卷积问题
  • Bugku CTF_Web——文件上传
  • Node.js下载安装教程
  • 开放式耳机性价比排行榜、开放式耳机性价比排行榜前十
  • 数据库常见的数据模型
  • 初识《树》
  • 如何运行C/C++程序
  • Mysql单表查询练习
  • Fabric:搭建自定义网络
  • 从戴森发明的“球轮手推车”看专利
  • docker镜像管理命令
  • HCIA-Datacom跟官方路线学习第二部分
  • Vue.js 的生命周期
  • 深入了解Java8新特性-日期时间API:OffsetDateTime类
  • MySQL双主双从数据库集群搭建
  • 记录:Unity脚本的编写7.0
  • 界面控件DevExpress WPF流程图组件,完美复制Visio UI!(二)
  • 创建一个带有背景图层和前景图层的渲染窗口
  • 软信天成:速看!云端混合数据管理的最佳解决方案
  • 六、Lua运算符
  • 深度视觉目标跟踪进展综述
  • 【虚拟机】Docker基础 【一】