自動裝配是spring-boot最核心的功能
自動裝配解決的了什么問題:
把配置的bean(包括自己寫的和第三方的sdk)自動加入到IOC容器中。在沒有自動配置的時候,我們是用xml進行配置,然后加入到IOC容器
原理理解:
SpringBoot的主配置類:
里面有一個main方法運行了一個run()方法,在run方法中必須要傳入一個被@SpringBootApplication注解的類。
@SpringBootApplication
SpringBoot應用標注在某個類上說明這個類是SpringBoot的主配置類,SpringBoot就會運行這個類的main方法來啟動SpringBoot項目。
那@SpringBootApplication注解到底是什么呢,點進去看看:
發現@SpringBootApplication是一個組合注解。
@SpringBootConfiguration
先看看@SpringBootConfiguration注解:
這個注解很簡單,表名該類是一個Spring的配置類。
再進去看看@Configuration:
說明Spring的配置類也是Spring的一個組件。
@EnableAutoConfiguration
這個注解是開啟自動配置的功能。
@AutoConfigurationPackage
https://blog.csdn.net/ttyy1112/article/details/101284541
注解的作用是將 添加該注解的類所在的package 作為 自動配置package 進行管理。
可以通過 AutoConfigurationPackages 工具類獲取自動配置package列表。當通過注解@SpringBootApplication標注啟動類時,已經為啟動類添加了@AutoConfigurationPackage注解。路徑為 @SpringBootApplication -> @EnableAutoConfiguration -> @AutoConfigurationPackage。也就是說當SpringBoot應用啟動時默認會將啟動類所在的package作為自動配置的package。
@Import({AutoConfigurationImportSelector.class})引入AutoConfigurationImportSelector.class
進入AutoConfigurationImportSelector.class
這里有一個最重要的方法:selectImports 這個方法就是用來掃描第三方sdk的配置文件(類似vue里的插件),然后把sdk加入IOC容器
下面這個就是一個第三方sdk的配置文件