RabbitAutoConfiguration
,RedisAutoConfiguration
等RabbitAutoConfiguration
类
RabbitTemplate.class, Channel.class
这两个类时(即在项目中引入了RabbitMQ相关的依赖),当前配置配置类会生效。在该配置类内定义的Bean也随之生效。RabbitAdmin
spring.rabbitmq.dynamic
时也默认生效。InitializingBean
接口,那么继续查看在afterPropertiesSet()
方法中进行了哪些操作。
解释:在连接工厂connectionFactory
中注册了一个监听器,在监听器中执行了initialize()
方法。
initialize()
方法。
解释:可以明显看到就是通过applicationContext.getBeansOfType(XXX.class)
方法获取容器中所有类型为Queue
, Exchange
和Binding
的bean,并根据这些bean的信息来帮我们在RabbitMQ创建队列,交换机和绑定关系。
declareExchanges()
解释:可以看到,最终还是调用的channel.exchangeDeclare()
,与我们手动调用创建的效果一致。
这是一种写代码的思路,平时可以借鉴一下。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。