java异步发送邮件_Spring如何优雅地发送异步发送通知?

2

Spring异步发送通知,这里面涉及两种:

1.异步去执行一个功能,如:发送短信,发送邮件,下单信息变更,支付信息变更等

2.发送消息通知,使用消息中间件:

ActiveMQ,完全支持JMS和J2EE,支持多语言和多协议

RabbitMQ,是一个开源的AMQP实现,用于在分布式系统中存储转发消息。扩展性、易用性、高可用性等方面表现不俗。支持多客户端多语言,是AMQP的完整实现,

Kafka(主要是日志服务), 一种高吞吐量的分布式发布订阅消息系统,是一个分布式的、分区的、可靠的分布式日志存储服务,它通过一种独一无二的设计提供了一个消息系统的功能。

异步去执行一个功能 :Spring Boot 之异步调用Async/** 异步 */

@Async

public void asyncEvent() throws InterruptedException{

Thread.sleep(5000);//数据验证

Thread.sleep(6000);//保存数据

Thread.sleep(7000);//发送邮件

logger.info(\"异步方法执行完了\");

}

1.异步调用很简单,只需要在方法上面加入注解:@Async

2.Spring Boot启动类通过 @EnableAsync注解开启异步。

发送消息通知,使用消息中间件

1.引入依赖:

org.springframework.boot

spring-boot-starter-amqp

2.配置文件:spring:

application:

name: Spring-boot-rabbitmq

rabbitmq:

host: 39.105.167.131

port: 5762

username: guest

password: guest

3.定义队列@Configuration

public class RabbitConfig {

@Bean

public Queue Queue() {

return new Queue(\"hello\");

}

}

4.发送者

5.接受者

6.测试

注意,发送者和接收者的 queue name 必须一致,不然不能接收。

执行测试方法,就可以发送消息了.

我们上面只是简单地做了一对一测试,还有一对多,发布与订阅,路由模式,主题模式

以上只是抛砖引玉,介绍基本流程,详细开发流程,欢迎留言交流。


版权声明:本文为weixin_34413326原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。