-
若是要在SpringBoot項目中查看SpringBoot幫咱們作的自動配置,很簡單,搜索XXXAutoConfiguration便可。web
-
如:
RabbitAutoConfiguration
,RedisAutoConfiguration
等spring -
進入
RabbitAutoConfiguration
類解釋:當classpath中存在RabbitTemplate.class, Channel.class
這兩個類時(即在項目中引入了RabbitMQ相關的依賴),當前配置配置類會生效。在該配置類內定義的Bean也隨之生效。微信 -
查看在當前配置類中註冊了哪些bean,其中有一個爲
RabbitAdmin
解釋:而且該Bean在未配置spring.rabbitmq.dynamic
時也默認生效。app -
進入這個類,查看在這個bean在建立的過程當中進行了哪些操做。解釋:能夠看到,該類實現了
InitializingBean
接口,那麼繼續查看在afterPropertiesSet()
方法中進行了哪些操做。編輯器
解釋:在鏈接工廠connectionFactory
中註冊了一個監聽器,在監聽器中執行了initialize()
方法。url
-
查看 initialize()
方法。
解釋:能夠明顯看到就是經過applicationContext.getBeansOfType(XXX.class)
方法獲取容器中全部類型爲Queue
, Exchange
和Binding
的bean,並根據這些bean的信息來幫咱們在RabbitMQ建立隊列,交換機和綁定關係。spa
-
進入任意一個方法,如 declareExchanges()
解釋:能夠看到,最終仍是調用的channel.exchangeDeclare()
,與咱們手動調用建立的效果一致。.net
這是一種寫代碼的思路,平時能夠借鑑一下。3d
# 系列文章
本文分享自微信公衆號 - 喜歡天文(AllUnderControl)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。code