SpringBoot 啟動配置原理(十八)

2022-05-21 23:00:11 字數 1717 閱讀 9687

前兩個是

配置在meta-inf/spring.factories,後兩個是只需要放在ioc容器中。

initialize(sources);

private

void

initialize(object sources)

//判斷當前是否乙個web應用

this.webenvironment =deducewebenvironment();

//setinitializers((collection) getspringfactoriesinstances(

class

));

//));

//從多個配置類中找到有main方法的主配置類

}

開啟debug模式檢視initializer,listener

public

stopwatch stopwatch = new

stopwatch();

stopwatch.start();

; failureanalyzers analyzers = null

; configureheadlessproperty();

//try

//整個springboot應用啟動完成以後返回啟動的ioc容器;

return

context;

}catch

(throwable ex)

}

配置在meta-inf/spring.factories

public

@override

public

void}}

public

//必須有的構造器

public

}@override

public

void

starting()

@override

public

void

environmentprepared(configurableenvironment environment)

@override

public

void

}@override

public

void

}@override

public

void}}

配置(meta-inf/spring.factories)

只需要放在ioc容器中,通過註解-->@component

@component

public

@override

public

exception

}

只需要放在ioc容器中,通過註解-->@component

@component

public

class hellocommandlinerunner implements

commandlinerunner

}

執行程式就可以觀察到springboot啟動中載入的順序,和執行流程了。

Spring Boot啟動配置原理

run 列印banner資訊 建立ioc容器物件 run 重新整理啟動ioc容器 掃瞄載入所有容器中的元件 包括從meta inf spring.factories中獲取的所有enableautoconfiguration元件 配置在meta inf spring.factories command...

SpringBoot啟動配置原理

springboot應用啟動,呼叫此方法 return run new object args 初始化 initialize sources private void initialize object sources 當前應用是否是web應用 this.webenvironment deducew...

SpringBoot之啟動配置原理

commandlinerunner 以main方法為入口 initialize sources private void initialize object sources 判斷當前是否乙個web應用 this.webenvironment deducewebenvironment setiniti...