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


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

單個導入效率太低了。
如何實現(xiàn)批量導入?
@import(AutoConfigurationImportSelector.class)

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

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

3 values是配置類

4 去重

5 classLoader加載類
找到自動配置類名字

6 過濾無關的配置類
先看依賴,看pom里面是否有,然后再看是否有關鍵類。


有135個配置類,無關配置類很多,

通過spring-autoconfigure-metadata.propertes文件
先其他jvm, 在啟動spring容器,導致速度比較慢。
其他
springBoot3.0后,使用了gravVM技術,在編譯時候就開始把bean掃描出來。
后面啟動時候直接注冊加載bean,不需要再進行掃描
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決java中mybatis報錯:org.apache.ibatis.binding.BindingException:
這篇文章主要介紹了解決java中mybatis報錯:org.apache.ibatis.binding.BindingException:Invalid bound statement(not found):xx問題,具有很好的參考價值,希望對大家有所幫助2024-03-03

