楔子
本篇是消息队列RabbitMQ的第二弹。
上一篇的结尾我也预告了本篇的内容:利用RabbitTemplate和注解进行收发消息,还有一个我临时加上的内容:消息的序列化转换。
本篇会和SpringBoot做整合,采用自动配置的方式进行开发,我们只需要声明RabbitMQ地址就可以了,关于各种创建连接关闭连接的事都由Spring帮我们了~
交给Spring帮我们管理连接可以让我们专注于业务逻辑,就像声明式事务一样易用,方便又高效。
先给大家说声抱歉,最近一周都没有发文,有一些比较要紧重要的事需要处理。
今天正好得空,本来说准备写SpringIOC
相关的东西,但是发现想要梳理一遍还是需要很多时间,所以我打算慢慢写,先把MQ给写了,再慢慢写其他相关的,毕竟偏理论的东西一遍要比较难写,像MQ这种偏实战的大家可以clone代码去玩一玩,还是比较方便的。
同时MQ也是Java进阶不必可少的技术栈之一,所以Java开发从业者对它是必须要了解的。
现在市面上有三种消息队列比较火分别是:RabbitMQ
,RocketMQ
和Kafka
。
今天要讲的消息队列中我会以RabbitMQ
作为案例来入门,因为SpringBoot的amqp中默认只集成了RabbitMQ
,用它来讲会方便许多,且RabbitMQ
的性能和稳定性都很不错,是一款经过时间考验的开源组件。
前言:Spring提供了非常好用的JavaMailSender
接口实现邮件发送。由于SpringBoot的Starter模块也为此提供了自动化配置,所以在引入了spring-boot-starter-mail
依赖之后,会根据配置文件中的内容去创建JavaMailSender
实例,因此我们可以直接在需要使用的地方直接@Autowired
来引入邮件发送对象。
前言:开发过程中,难免有的程序会因为某些原因抛出异常,而这些异常一般都是利用try ,catch的方式处理异常或者throw,throws的方式抛出异常不管。这种方法对于程序员来说处理也比较麻烦,对客户来说也不太友好,所以我们希望既能方便程序员编写代码,不用过多的自己去处理各种异常编写重复的代码又能提升用户的体验,这时候全局异常处理就显得很重要也很便捷了。
本文章是为了实现在SpringBoot中使用@Async异步时,将所有异步返回的结果合并。