教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

springboot啟動(dòng)流程是什么?

更新時(shí)間:2022年06月28日15時(shí)51分 來(lái)源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

第一步:

SpringApplication這個(gè)類(lèi)整合了其他框架的啟動(dòng)類(lèi), 只要運(yùn)行這一個(gè)類(lèi),所有的整合就都完成了,調(diào)用run函數(shù), 將當(dāng)前啟動(dòng)類(lèi)的字節(jié)碼傳入(主要目的是傳入@SpringBootApplication這個(gè)注解), 以及main函數(shù)的args參數(shù)


第二步:

在@SpringBootApplication注解中包含比較重要的注解: @EnableAutoConfiguration、@ComponentScan、@SpringBootConfiguration

@EnableAutoConfiguration注解中又包含一個(gè)@Import注解,該注解有一個(gè)類(lèi)叫AutoConfigurationImportSelector,該類(lèi)實(shí)現(xiàn)了ImportSelector接口的selectImports方法,該方法會(huì)去查詢META-INF下的spring.factories文件。spring.properties文件中所有的EnableAutoConfiguration為key的全類(lèi)名都會(huì)加載,但不一定都會(huì)放入IoC容器中,要判斷他們是否滿足Conditional的條件

@ComponentScan注解: 它會(huì)默認(rèn)掃描@ComponentScan所在類(lèi)的package及子包進(jìn)行掃描

@SpringBootConfiguration: 標(biāo)注當(dāng)前類(lèi)是配置類(lèi),并會(huì)將當(dāng)前類(lèi)內(nèi)聲明的一個(gè)或多個(gè)以@Bean注解標(biāo)記的方法的實(shí)例納入到spring容器中,并且實(shí)例名就是方法名


第三步:

@SpringBootApplication注解封裝了核心的@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan三個(gè)類(lèi), 大大節(jié)省了程序員配置時(shí)間,這就是SpringBoot的核心設(shè)計(jì)思想

常用的springboot注解

@SpringBootApplication: SpringBoot的非常重要的注解,用于實(shí)現(xiàn)Bean的默認(rèn)掃描、自動(dòng)裝備

@SpringBootConfiguration: 標(biāo)志當(dāng)前的類(lèi)是配置類(lèi)

@EnableAutoConfiguration: 開(kāi)啟自動(dòng)裝備,順便將自動(dòng)裝配的原理說(shuō)說(shuō)

@ComponentScan: 自定義包掃描的路徑

@MapperScan: SpringBoot內(nèi)置的Mybatis的Mapper文件掃描配置注解



猜你喜歡:

SpringBoot2 從基礎(chǔ)到項(xiàng)目實(shí)戰(zhàn)教程【全集】

為什么要開(kāi)發(fā)SpringBoot?SpringBoot概述

SpringBoot 2.X有什么新特性?

SpringBoot整合NoSQL 數(shù)據(jù)庫(kù)(Redis)實(shí)現(xiàn)緩存

傳智教育Java高級(jí)軟件工程師培訓(xùn)課程

0 分享到:
和我們?cè)诰€交談!