Rabbimq发送邮件并消费邮件
【摘要】 Rabbimq发送邮件并消费邮件
📑前言
本文主要是【Rabbimq】——Rabbimq发送邮件并消费邮件的文章,如果有什么需要改进的地方还请大佬指出⛺️
🎬作者简介:大家好,我是听风与他🥇
☁️博客首页:华为云主页听风与他
🌄每日一句:狠狠沉淀,顶峰相见
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", "邮件信息");
}
}
结果:
//控制台会打印:邮件信息
📑文章末尾
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)