SpringBoot自動裝配原理

2021-10-09 17:15:40 字數 1120 閱讀 9607

首先大家都知道springboot給我們帶來的好處,簡化配置、自動裝配

路人a:你知道springboot有什麼好處嗎?

路人b:自動化配置!!!

路人a:那你知道springboot怎麼去實現自動化的嗎?

路人b:那要知道幹啥,好用就行了!

這樣肯定是不對的,作為一名合格的碼農,最基本的要知道自己碼的是啥

@springbootconfiguration

@enableautoconfiguration

@componentscan

三大註解組成,@enableautoconfiguration:開啟自動配置,沒錯就是它了,那可以知道自動裝配是由@enableautoconfiguration去實現的。

ok,繼續往下看,兩個核心註解,其他註解自行了解

一進去又看到了自動裝配,既然是解析自動裝配的原理,當然首先是看這個了,看下這個autoconfigurationentry屬性是幹什麼用的,怎麼找,萬能的搜尋功能(在這裡就體現出了**規範的好處)

搜尋empty_entry發現有乙個getautoconfigurationentry(annotationmetadata annotationmetadata):獲取自動裝配條數,講的有點多了,感興趣的小夥伴可以直接debug去看下這個方法其他**,我這裡只講一些主要的,找到getcandidateconfigurations()下的loadfactorynames()方法看一下,發現它獲取到』meta-inf』目錄下的spring.factories檔案內容

並且獲取裡面的資料把每一條都儲存到乙個集合中,也就是說在類啟動時會去載入spring.factories中的內容,講到這裡大家是不是又多了一種bug排除思路呢

記錄每天一小步,不是很詳細如果有**不對的地方可以論一論

《springboot原始碼系列》 自動裝配原理

輔助判斷 初始化第三方jar擴充套件點 這個方法點進去,最終是執行了 springfactoriesloader.loadfactorynames type,classloader 可以看到這裡印證了我們上面說的掃瞄所有依賴jar 的 meta inf spring.factories 所有的配置類...

Springboot自動裝配

而下面那個 import 這個類點進去主要就是為了載入springboot的各種配置檔案。在這個類中你可以找到如下這個方法,去載入配置路徑為meta inf spring autoconfigure metadata.properties檔案。還有乙個方法則會去載入目錄下meta inf sprin...

spring boot 之自動裝配

在之前用spring框架進行開發的時候,我們要寫巨多的配置檔案,並且隨著功能的完善,還需要不停的修改這些檔案,非常痛苦,但是在使用spring boot 之後就沒有這些煩惱啦 雖然還是要寫一點點,但是對比以前,忽略不計 是真的不需要寫這些檔案了嗎?其實這些檔案時spring boot 在啟動時幫我們...