您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何進行SpringBoot自動裝配原理分析,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
先看看SpringBoot的主配置類:
里面有一個main方法運行了一個run()方法,在run方法中必須要傳入一個被@SpringBootApplication注解的類。
@SpringBootApplication
SpringBoot應用標注在某個類上說明這個類是SpringBoot的主配置類,SpringBoot就會運行這個類的main方法來啟動SpringBoot項目。
那@SpringBootApplication注解到底是什么呢,點進去看看:
發現@SpringBootApplication是一個組合注解。
@SpringBootConfiguration
先看看@SpringBootConfiguration注解:
這個注解很簡單,表明該類是一個Spring的配置類。
再進去看看@Configuration:
說明Spring的配置類也是Spring的一個組件。
@EnableAutoConfiguration
這個注解是開啟自動配置的功能。
先看看@AutoConfigurationPackage注解:
這個注解是自動配置包,主要是使用的@Import來給Spring容器中導入一個組件 ,這里導入的是Registrar.class。
來看下這個Registrar:
就是通過這個方法獲取掃描的包路徑,可以debug看看:
在這行代碼上打了一個斷點:
啟動項目:
進入斷點處:
看看能否獲取掃描的包路徑:
已經獲取到了包路徑:
那那個metadata是什么呢:
可以看到是標注在@SpringBootApplication注解上的DemosbApplication,也就是我們的主配置類:
說白了就是將主配置類(即@SpringBootApplication標注的類)的所在包及子包里面所有組件掃描加載到Spring容器。所以包名一定要注意。
現在包掃描路徑獲取到了,那具體加載哪些組件呢,看看下面這個注解。
@Import({AutoConfigurationImportSelector.class})
@Import注解就是給Spring容器中導入一些組件,這里傳入了一個組件的選擇器:AutoConfigurationImportSelector。
里面有一個selectImports方法,將所有需要導入的組件以全類名的方式返回;這些組件就會被添加到容器中。
debug運行看看:
會給容器中導入非常多的自動配置類(xxxAutoConfiguration);就是給容器中導入這個場景需要的所有組件,并配置好這些組件:
有了自動配置類,免去了我們手動編寫配置注入功能組件等的工作。
那他是如何獲取到這些配置類的呢,看看上面這個方法:
會從META-INF/spring.factories中獲取資源,然后通過Properties加載資源:
Spring Boot在啟動的時候從類路徑下的META-INF/spring.factories中獲取EnableAutoConfiguration指定的值,將這些值作為自動配置類導入到容器中,自動配置類就生效,幫我們進行自動配置工作。以前我們需要自己配置的東西,自動配置類都幫我們完成了。
J2EE的整體整合解決方案和自動配置都在spring-boot-autoconfigure-2.0.3.RELEASE.jar:
比如看看WebMvcAutoConfiguration:
都已經幫我們配置好了,我們不用再單獨配置了:
上述內容就是如何進行SpringBoot自動裝配原理分析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。