SpringBoot之啟動配置原理

2021-08-21 20:13:40 字數 2286 閱讀 7061

commandlinerunner

以main方法為入口:

initialize(sources);

private

void

initialize(object sources)

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

this.webenvironment = deducewebenvironment();

setinitializers((collection) getspringfactoriesinstances(

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

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

return context;

}catch (throwable ex)

}

public

class

implements

@override

public}}

public

class

implements

//必須有的構造器

public

}@override

public

void

starting()

@override

public

void

environmentprepared(configurableenvironment environment)

@override

public

void

}@override

public

void

}@override

public

void}}

配置(meta-inf/spring.factories)

org.springframework

.context

com.atguigu

.springboot

.listener

org.springframework

.boot

com.atguigu

.springboot

.listener

@component

public

class

implements

@override

public

void}}

commandlinerunner

@component

public

class

hellocommandlinerunner

implements

commandlinerunner

}

只需要放在ioc容器中

• spring boot啟動時掃瞄所有jar包的meta-inf/spring.factories中配置的

enableautoconfiguration元件

• spring-boot-autoconfigure.jar/meta-inf/spring.factories配置了啟動時需要載入的

enableautoconfiguration元件

• 配置檔案中使用debug=true可以**到當前啟用的自動配置的資訊

• 自動配置會為容器中新增大量元件

• spring boot在做任何功能都需要從容器中獲取這個功能的元件

• spring boot總是遵循乙個標準:容器中有我們自己配置的元件就用我們配置的,沒有就用自動配

置預設註冊進來的元件

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 啟動配置原理(十八)

前兩個是 配置在meta inf spring.factories,後兩個是只需要放在ioc容器中。initialize sources private void initialize object sources 判斷當前是否乙個web應用 this.webenvironment deducewe...