jsug spring bootコードリーディング 接触篇 a contact

Post on 21-Feb-2017

2.066 Views

Category:

Engineering

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Spring Bootコードリーディング発動篇 A CONTACT

Who am I ?

What is Sailing?

本日の内容

なぜコードリーディング?

一つ注意

今からSpring Bootのプロジェクト用意して IDEで見ようとするのはやめた方がいい

※大量のDependenciesのダウンロードが始まり、 ビルド完了までけっこうな時間がかかります。

必ず書くこれ

今回はここを見ましょう!

超ざっくりこんな流れSpringApplicationの初期化

クラスローダーからApplicationContextInitializerを取得する

SpringApplicationのrun

クラスローダーからApplicationListenerを取得する

SpringAppliationRunListenersをstart

ApplicationContextに初期化してたものを色々ロードする

ApplicationContextをリフレッシュ(ServletContextを開始)

SpringApplicationspring-boot/spring-boot/ src/main/java/org/springframework/boot/ SpringApplication.java

コンストラクタ

初期化で色々読み出して 保持してる

SpringAppliction#initialize クラスローダーから色々読み取る

ここら辺は Spirng Framework

deduceWebEnvironment

ApplicationContextInitializer

ApplicationContextInitializer

spring-boot/src/main/resouces/META-INF/spring.factories

こんな感じで色々書いてる。 ActuatorとかAutoconfigureとかにも定

義されてます。

SpringApplication#run

ここの中で Configuration, Beanを探して

初期化してる

createAndRefreshContext

自分でApplicationContext指定しなければ、AnnotationConfigApplicationContextかConfigurableWebApplicationContextを

作って返す

ここでApplicationが開始されます。 以降は後処理的なもの。

refresh

AbstractApplicationContext#refresh

AnnotationConfigEmbeddedWebApplicationContextにrefreshの実装はないのでこの先はSpring Framework。

まとめ

ありがとうございました!

top related