Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
DI コンテナを作って DI コンテナを知る ryounasso
Slide 2
Slide 2 text
簡易版 DI を作ってみた結果の学びをお話しします 詳しいコードの説明等は省いています🙇
Slide 3
Slide 3 text
普段から DI 使ってるけど... Spring Boot で DI 使ってるけど、内側がどうなっているのか理解できておらず... 自作して理解してみよう!
Slide 4
Slide 4 text
DI とは DI (Dependency Injection, 依存性の注入) B C A B は C に依存している A は B に依存している A の依存対象 この依存関係を外部から確立する
Slide 5
Slide 5 text
DI とは B C A 全体を把握するのは難しい... D E F
Slide 6
Slide 6 text
DI とは B C A 組み立てをやってくれる D E F DI コンテナ クライアント A を使いたい A
Slide 7
Slide 7 text
そもそもなぜ DI ? Controellr Service Repository xxServiceImpl xxController xxRepository xxService implements ビジネスロジックがデータアクセス層に依存
Slide 8
Slide 8 text
そもそもなぜ DI ? Controlelr Service Repository xxServiceImpl xxController xxRepository xxService implements DI Container Container
Slide 9
Slide 9 text
大事なのがリフレクションとアノテーション リフレクション クラスなどのメタ情報を扱うことができる Java 標準 API 定義情報などを知ることができるようになる アノテーション ソースコードに注釈をつけるもの @Overried, @Inject
Slide 10
Slide 10 text
リフレクション リフレクションを使って、クラスのメタ情報を扱うことで どんなクラスが来ても対応できるようにする フレームワーク側からすると、どんなクラスが来るかわからない
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
アノテーション インジェクトしたいフィールドにアノテーションをつけることで コンテナが認識して、インジェクションを行ってくれる DIContainer.register("bar", Bar.class) 的なことを毎回するのは手間
Slide 13
Slide 13 text
アノテーション
Slide 14
Slide 14 text
まとめ DI コンテナの中のざっくりとした処理が理解できた リフレクション・アノテーションの重要性 改めて DI とは何かも復習することができた
Slide 15
Slide 15 text
参考資料 - 作って理解するDIコンテナ https://nowokay.hatenablog.com/entry/20160406/1459918560 - 【やさしくない!? Java】 リフレクションの話 https://www.youtube.com/watch?v=LR0nSDRR0Ac&list=PL0BiA lg8j4Zu7Uu6Zdrm2dl8g8kU15Qie&index=2