SpringBoot项目使用Activemq队列做邮件异步发送

  1. 首先你需要有一个创建好的springboot项目;
  2. 搭建activemq
    这里如果没有搭建好的环境,可以参考我的另外一篇博客点击跳转
  3. 修改pom文件,添加依赖
		<!--引入MQ-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-activemq</artifactId>
        </dependency>
  1. 配置yml文件
spring:
  activemq:
    broker-url: tcp://127.0.0.1:61616
    user: admin
    password: admin

上面的IP地址需要根据实际情况修改61616是提供的JMS服务的端口,配置连接时需要配置这个端口,默认的8186只是提供管理控制台的服务。
7. 修改启动类注解
添加:@EnableJms
意思是使用jms消息支持
在这里插入图片描述
5. 创建邮件发送工具类
这里可以参考使用Hutool邮件工具类
6. 创建一个消息发送类SendService

@Component
public class SendService {

    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;
	
	/**
	* 这里的queueName是指消息队列的名称,需要在调用这个方法的时候带过来
	* 第二个map便是组装好的数据条
	*/
    public void sendQueue(String queueName, Map<String, Object> map) {
        Queue queue = new ActiveMQQueue(queueName);
        jmsMessagingTemplate.convertAndSend(queue, map);
    }
}

简单说明队列名称queueName的带入方法:
方法一:你可以直接存一个静态变量,调用方法的时候直接填入即可
方法二:可以配置到yml文件中,然后使用的时候直接取也可以
7. 创建消息异步监听队列接收类ReceiverService

@Component
public class ReceiverService {
	// 我这里是直接使用的静态变量作为消息队列名称:Constast.CODE_QUEUE_NAME
    @JmsListener(destination = Constast.CODE_QUEUE_NAME)
    public void receiveCodeEmail(MapMessage mapMessage) throws JMSException {
    	// 定义邮件类
        EmailProperties emailProperties = new EmailProperties();
        StringBuffer subject = new StringBuffer();
        StringBuffer text = new StringBuffer();
		// 组装邮件内容
        subject.append("验证码");
        text.append("验证码:" + mapMessage.getString("code") + ",10分钟内输入有效!\n");
        text.append("提示:请勿泄露验证码给他人!");
        emailProperties.setToName(mapMessage.getString("email"));
        emailProperties.setSubject(subject.toString());
        emailProperties.setText(text.toString());
        // 这里我是调用的自己的邮件发送工具类,可以根据你的需求自行修改
        this.emailUtils.sendEmail(emailProperties);
    }
}

到这里就可以愉快的使用了!可以大大提高你的业务处理速度,采用异步的形式发送邮件,提高用户体验。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值