Springboot主程序類注解配置過程圖解
@SpringBootApplication
點(diǎn)進(jìn)這個注解看

進(jìn)去第一個注解@SpringBootConfiguration看,上面有Configuration注解

@Configuration 這是Spring的配置類注解, 說明這個類一個配置類,里面都是配置文件
進(jìn)第二個注解@EnableAutoConfiguration, 顧名思義,這是允許自動配置生效的注解, 接下來進(jìn)去看它。
@EnableAutoConfiguration

進(jìn)去后也有兩個注解:第一個AutoConfigurationPackage,進(jìn)去看
里面有這個注解,@Import({Registrar.class}) @Import是spring的底層注解,作用是給Spring導(dǎo)入一個Registrar組件
進(jìn)去看Registrar


將主配置類所在的包以及以下的包里的所有組件,掃描到Spring容器中。
第二個@Import({AutoConfigurationImportSelector.class})
進(jìn)AutoConfigurationImportSelector里看,


這個configurations數(shù)組是我們需要導(dǎo)入的組件??纯碿onfigurations有什么,
實(shí)際上是將所有需要導(dǎo)入的組件以類全名的方式返回,這些組件會導(dǎo)入到容器中

能看到是從META-INF/spring.factories里獲取EnableAutoConfiguration指定的值,將這些值作為自動配置類導(dǎo)入到容器中,自動配置類就生效,幫我們完成自動配置工作:

看看spring.factories里有什么,有非常多的自動配置類 XXXAutoCOnfiguration(這里就不進(jìn)去看了),@Import({AutoConfigurationImportSelector.class})就是給容器中導(dǎo)入這個場景需要的所有組件并且配置好

注意spring-boot-autoconfigure.jar包。這里面有所有自動配置的組件

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Docker搭建前端Java的開發(fā)環(huán)境詳解
相信每個人入職第一天就是搭建本地開發(fā)環(huán)境,因?yàn)槲宜居玫氖莏ava,看見了多年不見的eclipse的圖標(biāo)出現(xiàn)我的電腦上,我是難過的。后來知道并不是我一個人有此感受。這篇文章是為了解決前后端開發(fā)沒有徹底分離的坑,詳細(xì)的給大家介紹了利用Docker搭建前端Java的開發(fā)環(huán)境。2016-10-10
SpringCloud兩種注冊中心的實(shí)現(xiàn)
本文主要介紹了SpringCloud兩種注冊中心的實(shí)現(xiàn),包括服務(wù)注冊、服務(wù)拉取、負(fù)載均衡和實(shí)例權(quán)重配置等,具有一定的參考價值,感興趣的可以了解一下2025-01-01
淺析打開eclipse出現(xiàn)Incompatible JVM的解決方法
本篇文章是對打開eclipse出現(xiàn)Incompatible JVM的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07
SpringMVC攔截器的實(shí)現(xiàn)和作用及Redis登陸功能的優(yōu)化詳解
這篇文章主要介紹了Java項(xiàng)目SpringMVC攔截器+Redis優(yōu)化登錄功能實(shí)現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-09-09
MyBatis-Plus通用枚舉自動關(guān)聯(lián)注入的實(shí)現(xiàn)
本文主要介紹了MyBatis-Plus通用枚舉自動關(guān)聯(lián)注入的實(shí)現(xiàn),解決了繁瑣的配置,讓 mybatis 優(yōu)雅的使用枚舉屬性,感興趣的可以一起來了解一下2021-06-06

