SlideShare a Scribd company logo
Spring Bootコードリーディング
発動 A CONTACT
Who am I ?
What is Sailing?
本日の内容
なぜコードリーディング?
一つ注意
今からSpring Bootのプロジェクト用意して
IDEで見ようとするのはやめた方がいい
※大量のDependenciesのダウンロードが始まり、
ビルド完了までけっこうな時間がかかります。
必ず書くこれ
今回はここを見ましょう!
超ざっくりこんな流れ
SpringApplicationの初期化
クラスローダーからApplicationContextInitializerを取得する
SpringApplicationのrun
クラスローダーからApplicationListenerを取得する
SpringAppliationRunListenersをstart
ApplicationContextに初期化してたものを色々ロードする
ApplicationContextをリフレッシュ(ServletContextを開始)
SpringApplication
spring-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
AnnotationConfigEmbeddedWebApplicationC
ontextにrefreshの実装はないのでこの先は
Spring Framework。
まとめ
ありがとうございました!

More Related Content

PDF
分散トレーシング技術について(Open tracingやjaeger)
PPTX
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
PPTX
世界一わかりやすいClean Architecture
PDF
Dockerからcontainerdへの移行
PDF
FridaによるAndroidアプリの動的解析とフッキングの基礎
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
PDF
Rest ful api設計入門
PDF
TDD のこころ @ OSH2014
分散トレーシング技術について(Open tracingやjaeger)
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
世界一わかりやすいClean Architecture
Dockerからcontainerdへの移行
FridaによるAndroidアプリの動的解析とフッキングの基礎
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Rest ful api設計入門
TDD のこころ @ OSH2014

What's hot (20)

PPTX
やさしいGitの内部構造 - yapcasia2013
PDF
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
PPTX
フロントエンドで GraphQLを使った所感
PPTX
NGINXをBFF (Backend for Frontend)として利用した話
PDF
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
PDF
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
PDF
オープンソースのAPIゲートウェイ Kong ご紹介
PDF
入社1年目のプログラミング初心者がSpringを学ぶための手引き
PDF
Python 3.9からの新定番zoneinfoを使いこなそう
PDF
TensorFlow Lite Delegateとは?
PDF
解説!30分で分かるLEAN ANALYTICS
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
PPTX
【修正版】Django + SQLAlchemy: シンプルWay
PDF
君はyarn.lockをコミットしているか?
PDF
Dockerfileを改善するためのBest Practice 2019年版
PPTX
Spring Boot ユーザの方のための Quarkus 入門
PDF
シリコンバレーの「何が」凄いのか
PDF
オブジェクト指向できていますか?
PDF
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
PDF
深層学習向け計算機クラスター MN-3
やさしいGitの内部構造 - yapcasia2013
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
フロントエンドで GraphQLを使った所感
NGINXをBFF (Backend for Frontend)として利用した話
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
オープンソースのAPIゲートウェイ Kong ご紹介
入社1年目のプログラミング初心者がSpringを学ぶための手引き
Python 3.9からの新定番zoneinfoを使いこなそう
TensorFlow Lite Delegateとは?
解説!30分で分かるLEAN ANALYTICS
SPAセキュリティ入門~PHP Conference Japan 2021
【修正版】Django + SQLAlchemy: シンプルWay
君はyarn.lockをコミットしているか?
Dockerfileを改善するためのBest Practice 2019年版
Spring Boot ユーザの方のための Quarkus 入門
シリコンバレーの「何が」凄いのか
オブジェクト指向できていますか?
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
深層学習向け計算機クラスター MN-3
Ad

Viewers also liked (20)

PPTX
Gcpug begginers #1LT startup scriptとshutdown script
PPTX
hontoからGCPへ
PDF
Springを何となく使ってる人が抑えるべきポイント
PDF
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
PDF
ヤフー社内でやってるMySQLチューニングセミナー大公開
PPT
KEY
Using Backbone with CakePHP
PDF
Lime Energy Banking Brochure
PPT
Wellcome lamola
PDF
Current state-of-php
PDF
College: Externe veiligheid en ruimtelijke ordening
PPT
PPT
Lime Energy Banking March2011
KEY
11b; reproduction
PDF
Dossier prensa semana17
PDF
Adfiz Wft portaal
PPT
Carretera a Huatulco
PPTX
Ies la mola puri y alba
KEY
Future of PHP
Gcpug begginers #1LT startup scriptとshutdown script
hontoからGCPへ
Springを何となく使ってる人が抑えるべきポイント
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
ヤフー社内でやってるMySQLチューニングセミナー大公開
Using Backbone with CakePHP
Lime Energy Banking Brochure
Wellcome lamola
Current state-of-php
College: Externe veiligheid en ruimtelijke ordening
Lime Energy Banking March2011
11b; reproduction
Dossier prensa semana17
Adfiz Wft portaal
Carretera a Huatulco
Ies la mola puri y alba
Future of PHP
Ad

Similar to Jsug spring bootコードリーディング 接触篇 a contact (20)

PPTX
Appsody でnodejsのアプリを立ち上げよう!
PDF
SpringBootの研修本で学んだこと
PDF
Driverについて
PDF
Practical migration from JSP to Thymeleaf
PPTX
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
PDF
Spring Boot概要
PPTX
Selenium IDE for primer
PPTX
Spring Integration 超入門
PDF
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
PDF
IntelliJ IDEAとKotlinで作るSpring 5アプリケーション
PDF
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
PDF
REST with Spring Boot #jqfk
PPTX
React NativeでTwitterクライアントを作ってみよう
ODP
今流行りのウェブアプリ開発環境Yeoman
PDF
Apple watch対応アプリのポイントや基本実装・連携tips
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
PPT
mobylet ケータイサイト30分クッキング
PDF
Embedded framework and so on
PDF
Gradle handson
PDF
Openshift 20191121
Appsody でnodejsのアプリを立ち上げよう!
SpringBootの研修本で学んだこと
Driverについて
Practical migration from JSP to Thymeleaf
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
Spring Boot概要
Selenium IDE for primer
Spring Integration 超入門
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
IntelliJ IDEAとKotlinで作るSpring 5アプリケーション
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
REST with Spring Boot #jqfk
React NativeでTwitterクライアントを作ってみよう
今流行りのウェブアプリ開発環境Yeoman
Apple watch対応アプリのポイントや基本実装・連携tips
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
mobylet ケータイサイト30分クッキング
Embedded framework and so on
Gradle handson
Openshift 20191121

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