最近一個粉絲說,他面試了4個公司,有三個公司問他:“Spring Boot 中自動裝配機制的原理”
他回答了,感覺沒回答錯誤,但是怎么就沒給offer呢?
對于這個問題,看看普通人和高手該如何回答,
普通人:
嗯… Spring Boot里面的自動裝配,就是@EnableAutoConfiguration注解,
嗯…它可以實作Bean的自動管理,不需要我們手動再去配置,
高手:
自動裝配,簡單來說就是自動把第三方組件的Bean裝載到Spring IOC器里面,不需要開發人員再去寫Bean的裝配配置,
在Spring Boot應用里面,只需要在啟動類加上@SpringBootApplication注解就可以實作自動裝配,
@SpringBootApplication是一個復合注解,真正實作自動裝配的注解是@EnableAutoConfiguration,

自動裝配的實作主要依靠三個核心關鍵技術,
- 引入Starter啟動依賴組件的時候,這個組件里面必須要包含@Configuration配置類,在這個配置類里面通過@Bean注解宣告需要裝配到IOC容器的Bean物件,
- 這個配置類是放在第三方的jar包里面,然后通過SpringBoot中的約定優于配置思想,把這個配置類的全路徑放在classpath:/META-INF/spring.factories檔案中,這樣SpringBoot就可以知道第三方jar包里面的配置類的位置,這個步驟主要是用到了Spring里面的SpringFactoriesLoader來完成的,
- SpringBoot拿到所第三方jar包里面宣告的配置類以后,再通過Spring提供的ImportSelector介面,實作對這些配置類的動態加載,
在我看來,SpringBoot是約定優于配置這一理念下的產物,所以在很多的地方,都會看到這類的思想,它的出現,讓開發人員更加聚焦在了業務代碼的撰寫上,而不需要去關心和業務無關的配置,
其實,自動裝配的思想,在SpringFramework3.x版本里面的@Enable注解,就有了實作的雛形,@Enable注解是模塊驅動的意思,我們只需要增加某個@Enable注解,就自動打開某個功能,而不需要針對這個功能去做Bean的配置,@Enable底層也是幫我們去自動完成這個模塊相關Bean的注入,
以上,就是我對Spring Boot自動裝配機制的理解,
總結
發現了嗎?高手和普通人的回答,并不是回答的東西多和少,
而是讓面試官看到你對于這個技術領域的理解深度和自己的見解,從而讓面試官在一大堆求職者中,對你產生清晰的印象,
好的,本期的普通人VS高手面試系列就到這里結束了,喜歡的朋友記得點贊收藏,
我是Mic,一個作業了14年的Java程式員,咱們下期再見,
著作權宣告:本博客所有文章除特別宣告外,均采用 CC BY-NC-SA 4.0 許可協議,轉載請注明來自
Mic帶你學架構!
如果本篇文章對您有幫助,還請幫忙點個關注和贊,您的堅持是我不斷創作的動力,歡迎關注「跟著Mic學架構」公眾號公眾號獲取更多技術干貨!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/464008.html
標籤:Java
