2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MkkAdvent Calendar 2022

Day 15

JavaのDIについてまとめ+ おまけ(よく使ってた機能)

Last updated at Posted at 2022-12-14

DIとは

  • Dependency Injection(依存性注入)の略
  • オブジェクトの成立に必要なコードを分離し、プログラム実行時に注入する手法
  • 例:2つのクラスの間に依存関係があり、そのうちの1つのクラスが完成していない場合
    完成済みのクラスをテスト(単体テスト)はできない
    しかし、依存性注入によってクラスの依存関係が解消され、完成済みクラスをテストすることが可能
  • このため、システムを改修する場合も最低限の変更で済ませることができ、開発が楽になる

今回の学習では以下の手順でDIを導入(DIの有無で動作確認の為)

  1. 非DIのプロジェクトをコピー
  2. 以下を3つをBean化
    1. コントローラー
    2. サービス
    3. リポジトリ

実例

例:2つのクラスの間に依存関係があり、そのうちの1つのクラスが完成していない場合

DIなし

スクリーンショット_2022-04-06_14.35.57.png

※完成済みのクラスをテスト(単体テスト)はできない

DIあり

スクリーンショット_2022-04-06_14.35.02.png

依存性注入によってクラスの依存関係が解消され、完成済みクラスをテストすることが可能

その他のテストの例

存在しないURL

DIなし

スクリーンショット_2022-04-06_15.42.28.png

DIあり

スクリーンショット_2022-04-06_15.43.34.png

不要な文字が入っている場合

DIなし

スクリーンショット_2022-04-06_16.18.43.png

DIあり

スクリーンショット_2022-04-06_16.19.32.png

DIの有無のコード比較

スクリーンショット_2022-04-06_21.23.41.png
スクリーンショット_2022-04-06_21.26.53.png

確認すること

  • spring-boot-starter-parentのバージョンが新しすぎないか

demoプロジェクト内のと比較しましたが問題なし

スクリーンショット_2022-04-06_9.34.00.jpg

  • Mavenの更新はしたか
  1. pom.xmlで右クリック⇒Maven⇒プロジェクトの更新

スクリーンショット_2022-04-06_9.39.51.png

  1. pom.xmlのエラーが出ているプロジェクトを選択しOK

スクリーンショット_2022-04-06_9.40.10.png

エディタの分割

ファイルのタブをクリックしてエディタのウィンドウにドラッグ

ドラッグの位置により水平か垂直か視覚的にわかるので好きな方で。

参考サイト:

Eclipse - エディタ関連 - エディタ分割

コードの比較

主な用途:同じコードを元に、違うコードを書くときに使用

スクリーンショット_2022-04-06_21.25.01.png
スクリーンショット_2022-04-06_21.26.53.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?