IntelliJ IDEA 2026.1 Help

Spring デバッガー

IntelliJ IDEA は、設計時に Spring 固有の多くの問題に対処できます。 ただし、一部の問題は実行時の調査が必要になる場合があります。 この場合、IntelliJ IDEA のデバッガーは Spring のコンテキストを認識し、デバッグモードで実行されている Spring アプリケーションをインスペクションおよび操作するためのツールを提供します。

Spring デバッガープラグインをインストールする

この機能は、インストールして有効にする必要がある Spring デバッガー(英語)プラグインに依存しています。

  1. Ctrl+Alt+S を押して設定を開き、 プラグイン を選択します。

  2. Marketplace タブを開き、 Spring デバッガープラグインを見つけて、 インストール をクリックします (プロンプトが表示されたら、IDE を再起動します)。

Spring デバッガーは、次の 実行構成型でサポートされています。

現在の構成を確認する

.properties で定義されたプロパティは、実行時に別の .properties ファイルまたは bean によってオーバーライドされることがよくあります。 実行時の実際の値が .properties ファイルで指定された値と異なる場合、対応する行に実際の構成値を示す インレイヒント が表示されます。

上書きされたプロパティ値は application.properties ファイルに表示されます

プロパティが複数のコンテキストで定義されている場合、インレイヒントには複数の定義が表示されます。

  • プロパティ値をオーバーライドするコード部分を確認するには、実際の値を示すインレイヒントをクリックします。 オーバーライドするコードがエディターで開きます。

    インレイヒントはプロパティの実際の値を表示する

データベース接続

Spring アプリケーションをデバッグモードで実行している場合、IntelliJ IDEA は データベース ツールウィンドウに現在のデータベース接続を表示します。

これは、他のシナリオの中でも、次のような場合に便利です。

データベースツールウィンドウにはランダムポートで実行されているデータベースが表示されます
  1. Spring アプリケーションを デバッグモードで実行します。

  2. データベースツールウィンドウを開きます。

  3. 更新 ボタンをクリックします。

検出されたデータベースでは、他の データソースの場合と同様に、テーブルを表示したり、SQL クエリを直接実行したり、スキーマを調べたりすることができます。

エディタータブ内のデータベーステーブルの内容

デバッガー式における Spring コンテキスト

IntelliJ IDEA のデバッガーで式を評価する際、現在の実行コンテキストに存在するかどうかに関係なく、すべてのプロパティと Bean にアクセスできます。 これにより、任意の bean のメソッドを実行してデータを取得し、仮説を検証できます。

エディターから式を評価する / ウォッチを追加する

  • Alt を押したまま、評価する式をクリックします。

    bean の詳細情報を表示するポップアップ
  • または、式を選択してから Ctrl+Alt+F8 を押すか、表示されるフローティングツールバーから 式の評価 を選択します。

    式の評価ボタンのあるフローティングツールバー

    ツールバーの をクリックすると、式をウォッチに追加できます。

任意の式を評価する / ウォッチを追加する

  • 任意の式を評価するには、 変数 タブの 式の評価 フィールドに入力 Enter

    変数タブの式

    結果はすぐ下に表示されます。 式フィールドの右側にある をクリックして、 式をウォッチに追加することもできます。

    変数タブの式の結果

利便性のために、 結果}]} as it appears in the context filed.}]} as it appears in the context filed.}]} as it appears in the context filed. 行の近くにある「要素を探索する 」をクリックすると、別のダイアログでコレクションを表示できます。 このビューでは、結果がページ分けされ、検索やフィルタリングが可能です。

「コレクションプレゼンテーション」ダイアログには、大規模なコレクションの内容が表示されます。

式の結果が JSON 形式または XML 形式の文字列である場合、それを構造化ドキュメントとして表示できます。 これにより、 コードの折りたたみ選択範囲の拡大または縮小などのエディター機能を使用して、サブツリーを操作したり、大きなオブジェクト内での便利なナビゲーションを行ったりすることができます。

%alt

Spring プロパティを評価する

  1. 式フィールドの右側部分で、メニューから Spring プロパティ を選択します。

  2. 評価したいプロパティを入力し、 Enter を押します。 プロパティの値と詳細が 結果}]} as it appears in the context filed.}]} as it appears in the context filed.}]} as it appears in the context filed. ノードに表示されます。

    変数タブのプロパティ値と詳細

    このプロパティのウォッチを設定する場合は、式フィールドの右側部分にある をクリックします。

ブレークポイント内の式

式やウォッチポイントと同様に、ブレークポイントでも式を使用できます。 これにより、一時的なログ記録を追加し、条件が満たされた場合にのみアプリケーションを停止できます。

条件付きブレークポイントを設定する

  • ブレークポイントを右クリックし、 条件 フィールドに条件を入力します。

    「条件」フィールドに式を入力できる「行ブレークポイント」ポップアップ

    ブレークポイントは、条件が true と評価された場合にのみアプリケーションを一時停止します。

ログブレークポイントを設定する

  • ブレークポイントを右クリックし、 詳細 をクリックして、 評価して記録 フィールドにログ記録式を入力します。

    「評価とログ」フィールドに式が入力した「ブレークポイント」ダイアログ

    ブレークポイントは、アプリケーションを一時停止するだけでなく、式の結果をコンソールに記録します。 アプリケーションを一時停止せずに式のみをログに記録したい場合は、 中断 チェックボックスをオフにしてください。

    「評価してログに記録」フィールドに式を入力し、「一時停止」チェックボックスをオフにした「行ブレークポイント」ポップアップ

ブレークポイントの種類とフィルターの詳細については、 ブレークポイントページを参照してください。

bean のランタイム情報を確認する

エディター画面で bean が表示されている場合、そのランタイム情報を確認できます。

  1. エディターで bean がロードされたクラス定義付近のガターアイコン(Spring bean )をクリックします。

    bean がロードされたクラス定義付近のガターアイコン
  2. 開いたメニューから ランタイム情報を表示 を選択します。

    bean がロードされたクラス定義付近のガターアイコンをクリックしたときに表示されるメニュー内の「Show runtime info」オプション

以下の情報を表示するポップアップが表示されます。

  • 注入先- この bean が現在注入されている他の bean

  • 依存先- この bean に注入されている他の bean(注入先 の逆)

bean のランタイム情報を表示するポップアップ

トランザクションのデバッグ

現在デバッグ中の操作が JPA トランザクション内で行われている場合、トランザクションの分離レベル、伝播ステータス、キャッシュの内容などのセッションコンテキストをデバッガーで直接表示できます。

取引の詳細を表示

  1. トランザクション内で実行される行でアプリケーションを一時停止します。

    アプリは @Transactional としてマークされたメソッドの行で停止しました
  2. デバッグ ツールウィンドウを開き、 変数 タブに切り替えます。 トランザクションの詳細は トランザクション ノードに表示されます。

    変数タブの取引詳細

トランザクション中は、トランザクションが開始されたコード内の場所に移動することもできます。

  • 変数 タブで ソースに移動 をクリックします

    スレッドと変数タブの「ソースへ移動」ボタン

トランザクションに含まれる JPA エンティティについては、 デバッグ ツールウィンドウの 変数 タブとコード内のエンティティのメンションの近くで現在の状態を確認できます。

エンティティの状態は、エンティティの使用箇所の近くのエディターに表示されます。

ロードされた Bean を確認する

Spring アプリケーションをデバッグモードで実行すると、 プロジェクト ツールウィンドウに、Spring の観点から各 bean の実行時ステータスが表示されます。

Bean クラスはプロジェクトツールウィンドウに異なるアイコンが表示されます

アイコンの色は次のステータスを示します。

  • 緑 – 満載

  • 透明 – 読み込まれていない

  • 黄色 – 嘲笑される

さらに、bean には次のいずれかのアイコンが表示されます。

  • Spring Java bean: @Component アノテーションで宣言された自動検出可能な Bean と、 @Bean アノテーションが付けられたメソッド。

  • : 構成 Bean (@Configuration または暗黙的に @Configuration を含むその他のアノテーションが付けられている)。

  • : リポジトリ Bean (@Repository でアノテーションが付けられているか、 org.springframework.data.repository.Repository インターフェースを拡張している)。

  • : コントローラー (@Controller および @RestController でアノテーションが付けられたクラス)。

  • Spring bean: 暗黙的な Bean - つまり、明示的に定義されていない Spring によって追加されるサービス Bean。

  • Spring abstract beans: 抽象 XML Bean (XML ファイルの abstract="true" 属性で定義)。

  • Spring abstract beans: インフラストラクチャ Bean - つまり、ViewResolver や context:component-scan を使用する Bean など、構成および一般的なインフラストラクチャサポートに関連する XML ファイルで定義された Bean です。

  • Spring prototype beans: プロトタイプスコープ (XML ファイルの scope="prototype" で定義) を持つ Bean。

  • Spring bean: XML ファイルで定義された他の Bean。

Spring デバッガーを無効化する

Spring デバッガーの機能は、特定の 実行/デバッグ構成で無効化できます。

  • 実行 / デバッグ構成の設定で、 オプションを変更 をクリックし、 Spring デバッガーを無効化する を選択します。

    実行構成設定の「オプションの変更」ボタン

リモート Spring アプリケーションをデバッグする。

Spring デバッガーは、次の組み込みコンテナーで実行されているリモート Spring アプリケーションのデバッグにも対応しています。

  • Tomcat

  • Jetty

  • Undertow

コンテナー間の相違点。

サポートされているコンテナーでスレッドモデルが異なるため、Spring デバッガーはコンテキストを遅れて提供する場合があります。

  • Tomcat – コンテキストがすぐに利用可能です。

  • Jetty – コンテキストは少し遅れて利用可能になります(最初の HTTP リクエストまで)。

  • Undertow – コンテキストは少し遅れて利用可能になります(最初の HTTP リクエストまで)。

デバッグエージェント付きで Spring アプリケーションを実行する。

  • デバッグエージェントをアタッチする VM オプションを付けて Spring アプリケーションを起動してください。

    Docker Compose 構成で JAVA_TOOL_OPTIONS を使用して VM オプションを指定する例:

    http-server: depends_on: - postgresql image: 'jb/http-server:latest' environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://postgresql:5432/db - SPRING_DATASOURCE_USERNAME=user - SPRING_DATASOURCE_PASSWORD=secret - JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 ports: - '8080:8080' - '5005:5005' # Map debug port 5005 to host port 5005

    VM オプションの詳細については、 デバッグエージェント を参照してください。

実行 / デバッグ構成を作成する

  1. 実行 | 実行構成の編集 に移動します。 または、 Alt+Shift+F10 を押してから 0 を押します。

  2. 実行 / デバッグ構成ダイアログで、ツールバーの をクリックするか、 Alt+Insert を押します。 リストから リモート JVM デバッグ を選択します。

  3. デバッグモード で、デバッガーがリモート JVM に接続するか、受信接続をリッスンするかを指定します。

    リモート JVM をリッスン を選択した場合は、リモート JVM が切断された後にデバッガーを自動的に再始動するかどうかを指定します。 このようにして、デバッガーは常に受信接続を処理する準備ができています。

  4. (Windows の場合) 必要に応じて、目的の トランスポート(英語)を指定します。 IntelliJ IDEA は適切なトランスポートを自動的に選択するため、通信方法に関して特別な要件がない限り、設定する必要はありません。

  5. リモート JVM のホストとポート番号を指定してください。 IPv4 と IPv6 の両方がサポートされています。 ポート番号が正しく指定されていること、使用されていないこと、ファイアウォールでブロックされていないことを確認してください。

  6. ソースを探すモジュールを指定します。 IntelliJ IDEA は、最初に選択されたモジュールをチェックし、次に他のモジュール(存在する場合)をチェックします。 ソースは、完全修飾クラス名を使用して照合されます。 完全修飾名で一致するものがない場合、IntelliJ IDEA はファイル名で一致するものを見つけようとします。

  7. debuggee JVM のデバッグエージェントをまだ構成していない場合は、必要な VM オプションを リモート JVM のコマンドライン引数 フィールドからコピーできます。

    debug-agent-option.png

実行 / デバッグ構成を開始する

  1. ホストアプリケーションが稼働中であり、 デバッグエージェントを追加する VM オプションで開始されていることを確認してください。

  2. 先ほど作成した実行 / デバッグ構成を 起動します

    debug_select_rc.png
2026 年 3 月 30 日