SpringBoot如何做到自动帮我们创建RabbitMQ的Queue和Exchange的?

  • 如果要在SpringBoot项目中查看SpringBoot帮我们做的自动配置,很简单,搜索XXXAutoConfiguration即可。

  • 如:RabbitAutoConfiguration,RedisAutoConfiguration

  • 进入RabbitAutoConfiguration解释:当classpath中存在RabbitTemplate.class, Channel.class这两个类时(即在项目中引入了RabbitMQ相关的依赖),当前配置配置类会生效。在该配置类内定义的Bean也随之生效。

  • 查看在当前配置类中注册了哪些bean,其中有一个为RabbitAdmin解释:并且该Bean在未配置spring.rabbitmq.dynamic时也默认生效。

  • 进入这个类,查看在这个bean在创建的过程中进行了哪些操作。解释:可以看到,该类实现了InitializingBean接口,那么继续查看在afterPropertiesSet()方法中进行了哪些操作。

解释:在连接工厂connectionFactory中注册了一个监听器,在监听器中执行了initialize()方法。

  • 查看initialize()方法。

解释:可以明显看到就是通过applicationContext.getBeansOfType(XXX.class)方法获取容器中所有类型为QueueExchangeBinding的bean,并根据这些bean的信息来帮我们在RabbitMQ创建队列,交换机和绑定关系。

  • 进入任意一个方法,如declareExchanges()

解释:可以看到,最终还是调用的channel.exchangeDeclare(),与我们手动调用创建的效果一致。

这是一种写代码的思路,平时可以借鉴一下。

# 系列文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值