最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

spring學(xué)習(xí)筆記2|從源碼看springboot如何實(shí)現(xiàn)自動配置

2023-04-20 12:18 作者:便宜酒  | 我要投稿

搭建一個ssm框架需要開發(fā)者手動進(jìn)行大量配置,springboot的核心就是【自動配置】,使開發(fā)者專注于業(yè)務(wù)層。


springboot接管了:

DispatcherServlet配置

view層配置

自動導(dǎo)入依賴


【pom.xml】里有:

啟動器:使自動配置生效

spring-boot-starter開頭的


spring-boot-starter-web:web環(huán)境所有依賴。如實(shí)現(xiàn)http接口(已包含spirngmvc),容器默認(rèn)為tomcat


spring-boot-starter-test:單元測試


build:支持打包成接口在target中

【啟動類】里有:

@SpringbootApplication:導(dǎo)入啟動類下的所有資源

????????@ComponentScan:掃描主啟動類同級的包,【所以建包一定要與該類同級】

????????@SpringBootConfiguration:支持springboot的配置

????????????????@Configuration:標(biāo)記為配置類

????????????????@Component:標(biāo)記為組件


????????@EnableAutoConfiguration:支持自動配置。

????????????????@AutoConfigurationPackage:自動配置包

????????????????????????????????AutoConfigurationPackages.Registrar.class,自動將導(dǎo)入的包注冊


????????????????@Import({AutoConfigurationImportSelector.class}):導(dǎo)入自動配置選擇器,選擇????????????????????????啟動類要用的配置導(dǎo)入,AutoConfigurationImportSelector.class里有:

????????????????????List<String> configurations =

this.getCandidateConfigurations(annotationMetadata, attributes),獲取了所有配置。


getCandidateConfigurations方法里有一個load方法,加載了META-INF/spring/%s.imports”里的自動配置類,注意,這是一大堆是所有的自動配置類,包括此工程用不上的

它們的@ConditionalOnxxx注解能識別哪些是需要的,以類名形式返回,添加到容器,這些類標(biāo)記為bean。



getCandidateConfigurations方法下面還有一個空判斷:

"No auto configuration classes found in META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports. If you are using a custom packaging, make sure that file is correct.”告訴開發(fā)者你要的配置類真找不到了,換個版本吧


找到META-INF/spring.factories,第四項(xiàng)# Auto Configuration Import Filters就是springboot幫我們導(dǎo)入的、用得上的自動配置類。只要我們pom.xml導(dǎo)入了對應(yīng)啟動器,就會配置成功。


綜上,springboot在啟動時掃描AutoConfiguration.imports. 根據(jù)@ConditionalOnxxx注解能識別哪些是需要的,加載到spring.factories,完成了自動配置。


?ps:我的springboot版本是3.0.5,老一點(diǎn)的版本貌似將所有配置類也放在spring.factories中,但仍通過@ConditionalOnxxx判斷。不太會看源碼,歡迎大佬指正。


spring學(xué)習(xí)筆記2|從源碼看springboot如何實(shí)現(xiàn)自動配置的評論 (共 條)

分享到微博請遵守國家法律
衢州市| 崇义县| 敖汉旗| 榆中县| 南乐县| 镇沅| 托克托县| 大荔县| 遂溪县| 界首市| 凤阳县| 巴南区| 隆子县| 崇信县| 运城市| 镶黄旗| 布拖县| 高安市| 时尚| 郑州市| 梧州市| 运城市| 香河县| 禄丰县| 四子王旗| 奉节县| 张家港市| 连云港市| 仁化县| 新沂市| 宁都县| 克山县| 茶陵县| 彰武县| 哈尔滨市| 化隆| 富源县| 安徽省| 松江区| 杭州市| 英超|