前兩個是
配置在meta-inf/spring.factories,後兩個是只需要放在ioc容器中。
initialize(sources);開啟debug模式檢視initializer,listenerprivate
void
initialize(object sources)
//判斷當前是否乙個web應用
this.webenvironment =deducewebenvironment();
//setinitializers((collection) getspringfactoriesinstances(
class
));
//));
//從多個配置類中找到有main方法的主配置類
}
public配置在meta-inf/spring.factoriesstopwatch stopwatch = new
stopwatch();
stopwatch.start();
; failureanalyzers analyzers = null
; configureheadlessproperty();
//try
//整個springboot應用啟動完成以後返回啟動的ioc容器;
return
context;
}catch
(throwable ex)
}
public@override
public
void}}
public配置(meta-inf/spring.factories)//必須有的構造器
public
}@override
public
void
starting()
@override
public
void
environmentprepared(configurableenvironment environment)
@override
public
void
}@override
public
void
}@override
public
void}}
只需要放在ioc容器中,通過註解-->@component
@component只需要放在ioc容器中,通過註解-->@componentpublic
@override
public
exception
}
@component執行程式就可以觀察到springboot啟動中載入的順序,和執行流程了。public
class hellocommandlinerunner implements
commandlinerunner
}
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...