springBoot自動(dòng)配置的全過(guò)程
什么是自動(dòng)配置
以前整合spring + mybatis框架時(shí)候,需要加很多的bean,
比如說(shuō)sqlSessionFactory等等現(xiàn)在springboot幫我們干了,
我們只需要引入對(duì)應(yīng)的starter就可以了。


springBoot可以幫我們配置好了一些bean. 如mysql, mogondb相關(guān)操作等等,目前有100多個(gè)。
不需要我們一個(gè)一個(gè)的import:

單個(gè)導(dǎo)入效率太低了。
如何實(shí)現(xiàn)批量導(dǎo)入?
@import(AutoConfigurationImportSelector.class)

通過(guò)AutoConfigurationImportSelector.selectImports方法導(dǎo)入配置類集合。
當(dāng)然其他jar里面也可以有配置類,不一定都會(huì)在starter里面。
需要其他jar里面主動(dòng)告訴springBoot,說(shuō)明是配置類:文件路徑為meta-inf/spirng.factories

尋找步驟
1 jar找文件
meta-inf/spirng.factories
2 找key

3 values是配置類

4 去重

5 classLoader加載類
找到自動(dòng)配置類名字

6 過(guò)濾無(wú)關(guān)的配置類
先看依賴,看pom里面是否有,然后再看是否有關(guān)鍵類。


有135個(gè)配置類,無(wú)關(guān)配置類很多,

通過(guò)spring-autoconfigure-metadata.propertes文件
先其他jvm, 在啟動(dòng)spring容器,導(dǎo)致速度比較慢。
其他
springBoot3.0后,使用了gravVM技術(shù),在編譯時(shí)候就開始把bean掃描出來(lái)。
后面啟動(dòng)時(shí)候直接注冊(cè)加載bean,不需要再進(jìn)行掃描
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
idea顯示springboot多服務(wù)啟動(dòng)界面service操作
這篇文章主要介紹了idea顯示springboot多服務(wù)啟動(dòng)界面service操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
SpringBoot中@PostConstruct 注解的實(shí)現(xiàn)
在Spring Boot框架中,?@PostConstruct是一個(gè)非常有用的注解,它用于在依賴注入完成后執(zhí)行初始化方法,本文將介紹?@PostConstruct的基本概念、使用場(chǎng)景以及提供詳細(xì)的代碼示例,感興趣的可以了解一下2024-09-09
java中對(duì)象轉(zhuǎn)json字符串的三種常用方式
本文主要介紹了java中對(duì)象轉(zhuǎn)json字符串的三種常用方式,包含Jackson庫(kù),Gson庫(kù)和Hutool工具類這三種,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
Mybatis提示Tag name expected的問(wèn)題及解決
MyBatis是一個(gè)開源的Java持久層框架,用于將Java對(duì)象與數(shù)據(jù)庫(kù)表進(jìn)行映射,它提供了一種簡(jiǎn)單、靈活的方式來(lái)訪問(wèn)數(shù)據(jù)庫(kù),同時(shí)也提供了強(qiáng)大的SQL映射和查詢功能2025-01-01
在SpringBoot中利用RocketMQ實(shí)現(xiàn)批量消息消費(fèi)功能
RocketMQ 是一款分布式消息隊(duì)列,支持高吞吐、低延遲的消息傳遞,對(duì)于需要一次處理多條消息的場(chǎng)景,RocketMQ 提供了批量消費(fèi)的機(jī)制,這篇文章將展示如何在 Spring Boot 中實(shí)現(xiàn)這一功能,感興趣的小伙伴跟著小編一起來(lái)看看吧2024-11-11
SpringBoot通過(guò)注解監(jiān)測(cè)Controller接口的代碼示例
在Spring Boot中,度量指標(biāo)(Metrics)是監(jiān)控和診斷應(yīng)用性能與行為的重要工具,Spring Boot通過(guò)集成Micrometer和Spring Boot Actuator,提供了強(qiáng)大的度量指標(biāo)收集與暴露功能,本文介紹了SpringBoot通過(guò)注解監(jiān)測(cè)Controller接口,需要的朋友可以參考下2024-07-07
IDEA實(shí)現(xiàn)純java項(xiàng)目并打包jar的步驟(不使用Maven,Spring)
在Java開發(fā)中我們通常會(huì)將我們的項(xiàng)目打包成可執(zhí)行的Jar包,以便于在其他環(huán)境中部署和運(yùn)行,這篇文章主要介紹了IDEA實(shí)現(xiàn)純java項(xiàng)目并打包jar(不使用Maven,Spring)的相關(guān)資料,需要的朋友可以參考下2025-08-08

