最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring boot 啟動(dòng)過程步驟詳解

 更新時(shí)間:2025年11月04日 09:44:02   作者:virtuousOne  
本文分步驟給大家介紹了spring boot 啟動(dòng)過程,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

在外面啟動(dòng)spring boot項(xiàng)目的時(shí)候,入口在如下方法中

那么它的啟動(dòng)過程是如何的,通過點(diǎn)擊進(jìn)去發(fā)現(xiàn)是如下方法;

  public static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) {
        return (new SpringApplication(primarySources)).run(args);
    }

在這個(gè)方法中,可以分為2個(gè)大步驟;
一:new SpringApplication(primarySources): 即將我們傳進(jìn)來的class進(jìn)行創(chuàng)建為springApplication。

在這里面
1.記錄傳入的primarySources
2.推測(cè)當(dāng)前應(yīng)用的類型

3.從spring.factories中獲取BootstrapRegistryInitializer
4.從spring.factories中獲取ApplicationContextInitializer
5.并且也獲取ApplicationListener

	this.bootstrapRegistryInitializers = new ArrayList<>(
				getSpringFactoriesInstances(BootstrapRegistryInitializer.class));
		setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));
		setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class));
		this.mainApplicationClass = deduceMainApplicationClass();

6.推測(cè)當(dāng)前main方法對(duì)應(yīng)的啟動(dòng)類

二:調(diào)用run()方法
1.創(chuàng)建并初始化DefaultBootstrapContext
2.獲取SpringApplicationRunListeners

SpringApplicationRunListeners listeners = getRunListeners(args);

3.調(diào)用SpringApplicationRunListeners 的starting(),發(fā)布ApplicationStartingEvent事件。
4.將啟動(dòng)參數(shù)artgs封裝為ApplicationArguments對(duì)象
5.準(zhǔn)備Environment
6.創(chuàng)建spring容器(ApplicationContext)
7.預(yù)處理spring容器

prepareContext(bootstrapContext, context, environment, listeners, applicationArguments, printedBanner);

8.刷新

	refreshContext(context);

9.調(diào)用SpringApplicationRunListener的started()方法,發(fā)布ApplicationStartedEvent事件

listeners.started(context, timeTakenToStartup);

10.調(diào)用SpringApplicationRunListener的ready()方法,發(fā)布ApplicationReadyEvent事件

try {
			Duration timeTakenToReady = Duration.ofNanos(System.nanoTime() - startTime);
			listeners.ready(context, timeTakenToReady);
		}
		catch (Throwable ex) {
			handleRunFailure(context, ex, null);
			throw new IllegalStateException(ex);
		}

到此這篇關(guān)于spring boot 啟動(dòng)過程的文章就介紹到這了,更多相關(guān)spring boot 啟動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

沁源县| 扶绥县| 民勤县| 襄城县| 郯城县| 海城市| 历史| 渭源县| 襄城县| 祁门县| 河北区| 巴南区| 平乡县| 正安县| 长岭县| 阳江市| 区。| 莱州市| 水城县| 新干县| 卓资县| 潜江市| 兴文县| 离岛区| 阜新市| 拜泉县| 谷城县| 曲靖市| 临夏市| 盐山县| 兴安盟| 乌拉特前旗| 温宿县| 花莲县| 泽库县| 新河县| 中阳县| 曲阳县| 永靖县| 江北区| 新干县|