Rabbitmq发送邮件并消费邮件

news2024/11/29 4:36:13

📑前言

本文主要是【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.coloradmin.cn/o/1266391.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小程序开发中SSL证书的重要作用

随着互联网技术的发展,越来越多的企业和个人开始开发自己的小程序来满足各种需求。然而,在这个过程中,安全性和稳定性成为了开发者必须关注的重点之一。为了保障用户的隐私安全和体验效果,越来越多的小程序开发者开始采用SSL证书进…

Sentaurus TCAD半导体器件入门常用案例合集

Sentaurus TCAD是用于模拟半导体器件和工艺的工具之一,可以帮助工程师设计电路元件,优化半导体工艺和器件性能。主要功能包括:半导体器件建模(用于建立各种半导体器件的物理模型工艺模拟)、半导体器件的制造工艺模拟&a…

VT-VRPA2-1-1X/V0/T5控制4WRE6比例方向阀放大板

带阀芯位移反馈不带集成式放大器比例方向阀控制放大器,替代力士乐同型号产品,可以完全互换使用;适用于控制力士乐系列带电位置反馈的4WRE6通径和4WRE10通径2X系列比例方向阀;0~10V、4~20mA指令控制信号任意可选;直接安…

电气制图用什么软件?CAD和Eplan哪个更胜一筹?

身为电气工程师,每天打交道最多的可能不是自家对象,而是时时刻刻攥在手里的电气图。目前市面上制作电路图的软件形形色色,但是AutoCAD Electrical和Eplan是目前大家使用率最高的两款电气制图软件。 EPLAN是一款专业的电气设计软件&#xff0…

GraphCast:基于机器学习的全球中期天气预测模型

文章信息 文章题为”GraphCast: Learning skillful medium-range global weather forecasting”,该文章于2023年发表至Science,文章内容主要关于利用机器学习模型,实现高效、准确的全球中期天气预测。由于文章内容较多,本文仅对研…

迷你洗衣机哪个牌子好又实惠?口碑最好的小型洗衣机

不得不说洗衣机的发明解放了我们的双手,而我们从小到大就有这个意识,贴身衣物不可以和普通的衣服一起丢进去洗衣机一起,而内衣裤上不仅有肉眼看见的污渍还有手上根本无法消灭的细菌,但是有一款专门可以将衣物上的细菌杀除的内衣洗…

MySQL进阶知识:一

目录 存储引擎 MySQL的体系结构 存储引擎简介 存储引擎特点 InnoDB 逻辑存储结构 MyISAM Memory 对比 存储引擎选择 索引 介绍 索引结构 BTree索引 Hash索引 索引分类 索引语法 SQL性能分析 SQL执行频率 慢查询日志 profile详情 explain执行计划 索引的…

SAP ABAP弹出对对话框错误信息设计

弹出对对话框错误信息设计、REUSE_ALV_POPUP_TO_SELECT 代码如下: IF lw_item_date-menge > lv_atp_other.lw_error-ebelp lw_item_date-ebelp.lw_error-matnr lw_item_date-matnr.lw_error-zlabst lv_labst.lw_error-zoccupy_so lv_occupy_s…

超实用电脑技巧分享,快速提高工作效率!

“我是个刚开始学习使用电脑的新手,想问问大家有什么比较好用的电脑使用技巧可以推荐一下吗?非常感谢!” 在使用电脑时,如果我们适当掌握一些技巧,可以有效提高效率。那么,今天小编就给大家分享一些常见的电…

java 鸿鹄云商 SAAS云产品概述 saas商城 b2b2c商城 o2o商城 积分商城 秒杀商城 拼团商城 分销商城 短视频商城免费搭建

【SAAS云平台】打造全行业全渠道全场景的SaaS产品,为店铺经营场景提供一体化解决方案;门店经营区域化、网店经营一体化,本地化、全方位、一站式服务,为多门店提供统一运营解决方案;提供丰富多样的营销玩法覆盖所有经营…

rider编辑器抛出异常 忽略try catch

如题 代码加了try catch 后用户使用体验是好了 但开发过程中 报错了不方便排查 启用这些配置后 trycatch里的异常也会抛出 补充一下默认配置,方便还原

ICC2/innovus设置no 1x gap的方法

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 ICC2设置no 1x的方法如下: 1) set_placement_spacing_label -name X -lib_cells {*} -side right set_placement_spacing_label -name Y -lib_cells {*} -side left 2) set_placement_spacing_rul…

万人拼团团购小程序源码系统+拼团设置+拼团管理 附带完整的搭建教程

随着互联网的快速发展,电子商务和社交电商的兴起,团购作为一种高效的营销策略和消费方式,受到了广大消费者的热烈欢迎。在此背景下,我们开发了一款基于微信小程序的万人拼团团购系统,旨在为用户提供一种更加便捷、高效…

2023年的 Web 前端开发建议需要具备技能

2023年的 Web 前端开发需要具备一系列技能,以应对不断变化的技术环境和满足日益增长的业务需求。以下是一些可能被视为必备的技能,以及为什么这些技能在当今前端开发中显得至关重要: 一、JavaScript、HTML、CSS: 为什么重要&…

灰度发布专题---5、API网关灰度发布

API网关灰度发布 前面说到Dubbo灰度发布,那网关代理层如何实现灰度发布呢,在网关层实现灰度发布,我们可以采用2种方式实现,分别是权重和灰度规则配置。在这之前我们先了解下Gateway的源码,更利于后面灰度分析。 Gate…

【Python3】【力扣题】367. 有效的完全平方数

【力扣题】题目描述: 【Python3】代码: 1、解题思路:Python函数。num的平方根 或者 num的0.5次幂。 知识点:float.is_integer(...):判断浮点数的值是否等于整数。也可以:浮点数.is_integer()。 pow(a,b)&…

婴儿专用洗衣机哪个牌子比较好?宝宝洗衣机推荐

对于宝妈来说有一款小型可以自动杀菌的洗衣机真的非常重要。我们日常生活中一般会把一些贴身衣物和较特殊的面料的衣物用于手洗,而手洗的过程会相对来说比较麻烦,而且还可能洗不干净,而传统的洗衣机采用了双缸式容易滋生霉菌,容易…

P8A012-A016组策略安全

账户策略 【预备知识】 组策略(Group Policy)是Microsoft Windows系统管理员为用户和计算机定义并控制程序、网络资源及操作系统行为的主要工具。通过使用组策略可以设置各种软件、计算机和用户策略。 【实验步骤】 网络拓扑:server2008A…

Python hashlib库解析:数据安全加密必备指南

更多资料获取 📚 个人网站:ipengtao.com 哈希函数在计算机科学中扮演着重要的角色。它是一种能够将任意长度的数据转换成固定长度的唯一值的算法。Python提供了hashlib库,用于生成哈希摘要,提供了常见的哈希算法,如MD…

查看mysql 或SQL server 的连接数,mysql超时、最大连接数配置

1、mysql 的连接数 1.1、最大可连接数 show variables like max_connections; 1.2、运行中连接数 show status like Threads_connected; 1.3、配置最大连接数, mysql版本不同可配置的最大连接数不同,mysql8.0的版本默认151个连接数,…