SpringBoot项目使用Activemq队列做邮件异步发送
2020-06-03 06:07
411 查看
- 首先你需要有一个创建好的springboot项目;
- 搭建activemq
这里如果没有搭建好的环境,可以参考我的另外一篇博客点击跳转 - 修改pom文件,添加依赖
<!--引入MQ--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency>
- 配置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); } }
到这里就可以愉快的使用了!可以大大提高你的业务处理速度,采用异步的形式发送邮件,提高用户体验。
相关文章推荐
- Spring Boot中使用JavaMailSender发送邮件
- Spring Boot中使用JavaMailSender发送邮件
- Spring Boot中使用JavaMailSender发送邮件
- Spring Cloud -- 使用activemq完成注册发送邮件
- SpringBoot 高级 异步任务 定时任务 邮件发送
- spring boot项目 和消息队列 activeMQ 的整合
- SpringBoot项目实现文件上传和邮件发送
- Spring Boot中使用JavaMailSender发送邮件
- Spring Boot中使用JavaMailSender发送邮件
- Spring Boot教程(十七)使用JavaMailSender发送邮件
- 使用spring-boot-starter-mail实现邮件发送
- springboot2 开启ssl 使用465端口 多线程 发送邮件 ( mail )
- SpringBoot 2.0 集成 JavaMail ,实现异步发送邮件
- 使用spring boot email 发送邮件
- 使用Springboot Email实现邮件发送
- spring-boot实战【12】:Spring Boot中使用JavaMailSender发送邮件
- springboot之任务(异步/定时/发送邮件)
- Spring Boot中使用JavaMailSender发送邮件
- 利用邮箱接口在springboot项目中发送邮件(以163邮箱为例)
- Spring Boot中使用JavaMailSender发送邮件