(二)、自動裝配

springboot的自動裝配大大減輕了開發人員的工做量,約定大於配置的思想深刻javaer的心,那麼springboot是如何實現自動裝配的呢?
下面經過部分源碼與圖片開始解開其自動配置的神祕面紗。
首先,先從啓動類註解開始
image.png
能夠看到@SpringBootApplication中還有一個@EnableAutoConfiguration註解,從字面意思上就能夠看出它與自動裝配有不淺的關係,再看看它的全貌。
image.png
能夠看到@EnableAutoConfiguration上面還有一個@Import註解,其做用是導入一個class,再看看這個AutoConfigurationImportSelector類。
這個類有一個getAutoConfigurationEntry方法,做用是獲取須要自動裝配類名的set的條目。
image.png
getAutoConfigurationEntry中還調用了一個方法getCandidateConfigurations
image.png
getCandidateConfigurations中調用了SpringFactoriesLoader.loadFactoryNames(這個方法在上一篇 spi與SpringFactoriesLoader中有詳細的解析),從META-INF/spring.factories中讀取key爲org.springframework.boot.autoconfigure.EnableAutoConfiguration的全部的值返回對應的List。
最後咱們來看看spring-boot-autoconfigure包下的META-INF/spring.factories文件。
![上傳中...]()
image.png
能夠看到springboot爲項目準備了很是多的配置類,這樣開發人員就只需按需更改配置就好了,不須要再去手動實現配置。java

最後附上簡單的流程圖
image.pngspring

相關文章
相關標籤/搜索