SpringBoot自動裝配原理及使用說明
1、Spring Boot自動裝配是什么?
SpringBoot自動裝配主要是基于注解編程 和 約定優(yōu)于配置的思想來設計的。

自動裝配就是由Spring自動把其他組件中的Bean裝載到IoC容器中,不需要開發(fā)人員再去配置文件中添加大量的配置。我們只需要在Spring Boot的啟動類上添加 @SpringBootApplication 注解,開啟自動裝配。
這種自動裝配的思想,在Spring 3.x以后就開始支持,我們只要在類上添加 @Enable 注解就可以了,只是沒有像Spring Boot這樣全面地去設計。
因此,Spring 和 Spring Boot的最大區(qū)別就是在于Spring Boot的自動裝配。那自動裝配的原理又是什么呢?
2、自動裝配原理
@SpringBootApplication這個注解是暴露給用戶使用的入口,它的底層是由 @EnableAutoConfiguration這個注解來實現(xiàn)的。
這樣一個自動裝配的實現(xiàn),我把它歸納為以下三個核心步驟:

第一步:啟動依賴組件的時候,組件中必須要包含 @Configuration 的配置類,在這個配置類里面聲明為 @Bean 注解,就將方法的返回值或者屬性值 注入到IoC容器中。
第二步:如果是使用第三方jar包,Spring Boot采用SPI機制,只需要在/META-INF/目錄下增加spring.factories配置文件。然后,Spring Boot會根據(jù)約定規(guī)則,自動使用SpringFactoriesLoader來加載配置文件中的內(nèi)容。
第三步:Spring獲取到第三方jar中的配置以后,會使用調(diào)用ImportSelector接口來完成動態(tài)加載。
這樣的設計的好處在于,大幅減少了臃腫的配置文件,而且各模塊之間的依賴實現(xiàn)了深度解耦。比如,我們使用Spring創(chuàng)建Web程序時需要導入非常多的Maven依賴,而Spring Boot只需要一個Maven依賴來創(chuàng)建Web程序,并且Spring Boot還把我們最常用的依賴都放到了一起,我們只需要 引入 spring-boot-starter-web 這一個依賴就可以完成一個簡單的Web應用。
以前用Spring的時候需要XML文件配置開啟一些功能,現(xiàn)在Spring Boot不用XML配置了,只需要寫一個, 加了@Configuration注解 或者實 現(xiàn)對應接口的配置類就可以了。
3、總結(jié)
①、通過@Import(AutoConfigurationImportSelector.class),導入配置類,這里并不是單個配置類的導入
②、AutoConfigurationImportSelector實現(xiàn)了ImportSelector類,重寫了selectImports方法,用于實現(xiàn)選擇性的批量配置類的裝配
③、通過Spring的SpringFactoryLoader機制,掃描classpath下的META/spring.factories文件,讀取需要實現(xiàn)自動裝配的配置類
④、通過條件篩選,把不符合的移除,最終實現(xiàn)自動裝配
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?Boot?3.x?中?WebClient?示例詳解析
SpringBoot3.x中WebClient是響應式HTTP客戶端,替代RestTemplate,支持異步非阻塞請求,涵蓋GET/POST/PUT/DELETE等方法,通過鏈式調(diào)用處理響應,需注意非阻塞I/O及超時、異常配置,本文給大家介紹SpringBoot3.x中WebClient示例,感興趣的朋友一起看看吧2025-07-07
SpringData JPA Mongodb查詢部分字段問題
這篇文章主要介紹了SpringData JPA Mongodb查詢部分字段問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08

