1.ActiveMQ 是什么鬼?
ActiveMQ 是一种开源的基于 JMS(Java Message Servie)规范的一种消息中间件的实现,ActiveMQ 的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。ActiveMQ 常被应用与系统业务的解耦,异步消息的推送,增加系统并发量,提高用户体验。
a.AcitveMQ 的数据传送流程
![7b2be07a64808a98ca04adb8062adc10.png](https://i-blog.csdnimg.cn/blog_migrate/48a3f7c29ef1a77c69f6e1a740e94d85.png)
b.ActiveMQ 的两种消息传递类型
(1)点对点传输,即一个生产者对应一个消费者,生产者向 broke 推送数据,数据存储在 broke 的一个队列中,然后消费者接受该条队列里的数据。
(2)基于发布 / 订阅模式的传输,即根据订阅话题来接收相应数据,一个生产者可向多个消费者推送数据。两种消息传递类型的不同,点对点传输消费者可以接收到在连接之前生产者所推送的数据,而基于发布 / 订阅模式的传输方式消费者只能接收到连接之后生产者推送的数据
2. 代码实现(注意:本地需先安装 ActiveMQ)
(1)构建 maven 项目,pom 文件中引入依赖:
![706e84c3872b6def96655dc75cfbf093.png](https://i-blog.csdnimg.cn/blog_migrate/91ab83f9c5edff13c7a2e0c3b659c54e.png)
(2)application.yml 文件内容配置:
![024a2f6c672ce31838105d18db575824.png](https://i-blog.csdnimg.cn/blog_migrate/229785239dbc8b62874191f92385a487.png)
这里是 mq 和 mail 的配置,需要注意不要有重复配置,我刚开始配置了两个 spring 导致 mail 配置没有生效,项目启动时总是报无法自动注解!!!
(3)Email 实体类的创建:
![b2ddb79326f2daf35b856fedfa50f5eb.png](https://i-blog.csdnimg.cn/blog_migrate/4fa2557ad1ba3f1934d992f5728b7a8d.png)
(4) 创建生产者:
![ae64b774c014420f3004b2a81d198b08.png](https://i-blog.csdnimg.cn/blog_migrate/d724d5397a891c5a5880cad03fcb4ab7.png)
(5)创建消费者(监听器):
![ba91025e877490fd3a4190fe4f5e3734.png](https://i-blog.csdnimg.cn/blog_migrate/f4ac556a957ec2bc73dc3548d93661e4.png)
当监听器监听到发送邮件信息后直接调邮件模板中发送邮件,里面可以设置各种附件信息,包括捕获收件人信息错误异常。
(6)发送邮件模板类创建:
![41c7feb1e93df8453ad81f687f551c92.png](https://i-blog.csdnimg.cn/blog_migrate/37b93c68a39c9517706882c1758fa793.png)
以上是一些逻辑实现,重点就是生产者创建消息放进队列中,消费者(监听器)收到消息后做一些业务处理。其次就是邮件格式的设置,包括附件,图片等。。。
源码下载地址:https://download.csdn.net/download/LQS199372/12064815
作者:LQS会飞的鱼
来源链接:
https://blog.csdn.net/LQS199372/article/details/103761124