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來加載配置文件中的內容。
第三步:Spring獲取到第三方jar中的配置以后,會使用調用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、總結
①、通過@Import(AutoConfigurationImportSelector.class),導入配置類,這里并不是單個配置類的導入
②、AutoConfigurationImportSelector實現(xiàn)了ImportSelector類,重寫了selectImports方法,用于實現(xiàn)選擇性的批量配置類的裝配
③、通過Spring的SpringFactoryLoader機制,掃描classpath下的META/spring.factories文件,讀取需要實現(xiàn)自動裝配的配置類
④、通過條件篩選,把不符合的移除,最終實現(xiàn)自動裝配
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Idea?springboot?springCloud熱加載熱調試兩種常用方式
這篇文章主要介紹了Idea?springboot?springCloud熱加載熱調試常用的兩種方式,在項目開發(fā)的過程中,需要修改調試的時候偶每次都需要重啟項目浪費時間,下面是我整理的兩種常用的兩種方式,需要的朋友可以參考下2023-04-04
解析springBoot-actuator項目構造中health端點工作原理
這篇文章主要介紹了springBoot-actuator中health端點工作原理,對spring-boot-actuator的項目構造,工作原理進行了全面的梳理,側重health健康檢查部分2022-02-02

