Java プロジェクトのデバッグの実践: Spring Boot プロジェクトで GET リクエストを効率的にデバッグし、equalsIgnoreCase() を通じて大文字と小文字の不一致を解決する方法

Java プロジェクトのデバッグの実践: Spring Boot プロジェクトで GET リクエストを効率的にデバッグし、equalsIgnoreCase を通じて大文字と小文字の不一致を解決する方法

  • 前に書きます
  • プロセス全体
  • Java equalsIgnoreCase() 方法
  • アイデアで SpringBoot プロジェクトをデバッグする方法
      • IntelliJ IDEA の組み込み HTTP クライアントの使用
      • ブレークポイントを設定してデバッグする
    • 補足: idea で Java プロジェクトをデバッグする方法

前に書きます

最近、Java プロジェクトの実行中に問題が発生しました。

@tanyueのリモート指導の下、段階的なデバッグ プロセス中に、ケースに一貫性がないことが判明し、フィールドが同じではないと判断されました。

最後に、equals()をequalsIgnoreCase()に置き換えた後、問題は正常に解決されました。

equals() は大文字と小文字の違いを判断しますが、equalsIgnoreCase() は大文字と小文字を判断しません。

久しぶりに Java を触ったのですが、見ながらデバッグについて新しいことを学んだので記録しておきます。

プロセス全体

最近の Java プロジェクトの開発中に、不可解な問題に遭遇しました。プロジェクトはほとんどの場合正常に機能しますが、特定のケースでは期待どおりに機能しない場合があります。最初は論理的なエラーか隠れたバグだと思いましたが、コードを注意深く確認したところ、明らかなエラーは見つかりませんでした。

ダン・ダさんには遠隔指導にご協力いただき、また時間とエネルギーをありがとうございました。この間、デュアルスクリーンなので、操作が少し複雑で変なところがあります。

問題を特定するために、詳細なデバッグ プロセスを開始しました。ログを出力して段階的に追跡すると、問題は文字列の大文字と小文字にあることがわかりました。Java では、デフォルトの文字列比較では大文字と小文字が区別されます。これは、2 つの文字列が同じリテラル値を持っていても大文字と小文字が一致しない場合でも、equals()このメソッドを使用して比較すると、それらは等しくないとみなされることを意味します。

ここに画像の説明を挿入します

問題は、一見同一に見える 2 つの文字列を比較すると、結果が期待どおりに「等しくない」ということです。
このプロジェクトでは、一部のフィールドはユーザーによって入力され、他のフィールドはシステムによって生成されたため、大文字と小文字の不一致が発生しました。このため、場合によっては、フィールドが同じであるように見えても、プログラムによってそれらが等しくないと判断されることがあります。

最終的な解決策は非常にシンプルでありながら、非常に効果的でした。文字列を含むすべてのメソッド呼び出しを にequals()置き換えますequalsIgnoreCase()この方法は、文字列を比較するときに大文字と小文字の違いを無視することで私の問題を解決しました。たとえば、を使用すると が"example".equalsIgnoreCase("Example")返されますtrueが、 を使用するとequals()が返されますfalse

ここに画像の説明を挿入します

この経験から、特にユーザー入力とシステム生成データが関係するシナリオでは、文字列比較を扱うときは特に注意する必要があることがわかりました。また、問題の解決策が驚くほど簡単に解決できる場合もあり、重要なのは忍耐力と慎重なデバッグであることも理解しています。

Java equalsIgnoreCase() 方法

参考:https://www.runoob.com/java/java-string-equalsignorecase.html

Java String クラス:equalsIgnoreCase() メソッドは、大文字と小文字に関係なく、文字列と指定されたオブジェクトを比較するために使用されます。

文法

public boolean equalsIgnoreCase(String anotherString)

パラメータ: anObject – 文字列を比較するオブジェクト。

戻り値: 指定されたオブジェクトが文字列と等しい場合は true、それ以外の場合は false。

:equals() は大文字と小文字の違いを判断しますが、equalsIgnoreCase() は大文字と小文字の違いを判断しません。

public class Test {
    
    
    public static void main(String args[]) {
    
    
        String Str1 = new String("runoob");
        String Str2 = Str1;
        String Str3 = new String("runoob");
        String Str4 = new String("RUNOOB");
        boolean retVal;

        retVal = Str1.equals( Str2 );
        System.out.println("返回值 = " + retVal );

        retVal = Str3.equals( Str4);
        System.out.println("返回值 = " + retVal );

        retVal = Str1.equalsIgnoreCase( Str4 );
        System.out.println("返回值 = " + retVal );
    }
}

上記のプログラムの実行結果は次のようになります。

返回值 = true
返回值 = false
返回值 = true

アイデアで SpringBoot プロジェクトをデバッグする方法

Spring Boot プロジェクトでのデバッグ、特に HTTP GET リクエストなどのネットワーク リクエストのデバッグは、次の手順に従って IDE で実行できます。手順は次のとおりです。

IntelliJ IDEA では、Postman やブラウザーなどの外部ツールを使用せずに、Spring Boot プロジェクトで GET リクエストを直接呼び出すことができます。IntelliJ IDEA は、IDE から直接 HTTP リクエストを送信し、応答を表示できるようにする組み込みの HTTP クライアント機能を提供します。

IntelliJ IDEA の組み込み HTTP クライアントの使用

  1. HTTP リクエスト ファイルを作成します。

    • プロジェクト内で、ソース コード ディレクトリまたは任意のディレクトリを右クリックします。
    • New->を選択しますHTTP Request
    • これにより、新しい.httpファイルが作成されます。
  2. HTTP リクエストの書き込み: (クリックして自動的に生成することもできます)

    • .httpファイルにGET リクエストを記述します。例えば:
      GET http://localhost:8080/your-endpoint
      
    • URL とポート番号が Spring Boot アプリケーション構成と一致していることを確認し、your-endpoint実際のエンドポイント パスに置き換えてください。

ここに画像の説明を挿入します

ここに画像の説明を挿入します

  1. リクエストを送信:

    • ファイル内で.http、リクエスト行の横にある緑色の再生ボタンをクリックしてリクエストを送信します。
    • ショートカット キー (通常は Ctrl + Enter) を使用することもできます。
  2. 応答を表示します。

    • リクエストの送信後、IDE は HTTP レスポンスを確認できる新しいウィンドウまたは領域を表示します。
    • 応答には、ステータス コード、ヘッダー情報、応答本文が含まれます。

ブレークポイントを設定してデバッグする

この GET リクエストの処理中にデバッグしたい場合は、次のようにします。

  1. ブレークポイントを設定します:

    • コントローラーで GET リクエストを処理するメソッドなど、デバッグするコードの部分を見つけます。
    • プログラムの実行を一時停止したいコード行の隣にブレークポイントを設定します。行番号の横の空白部分をクリックすると、ブレークポイントが設定されたことを示す赤い点が表示されます。
  2. アプリをデバッグ モードで起動します。

    • プロジェクトのスタートアップ クラス (通常は@SpringBootApplication注釈が付けられたクラス) の横にあるデバッグ ボタン (バグに似たアイコン) をクリックするか、ショートカット キー (通常は Shift+F9) を使用してデバッグ モードを開始します。
  3. GET リクエストを送信します。

    • ブラウザ、Postman、または任意の HTTP クライアントを使用して、Spring Boot アプリケーションに GET リクエストを送信します。正しい URL とポート番号を使用していることを確認してください。
    • IntelliJ IDEA では、Postman やブラウザーなどの外部ツールを使用せずに、Spring Boot プロジェクトで GET リクエストを直接呼び出すことができます。IntelliJ IDEA は、IDE から直接 HTTP リクエストを送信し、応答を表示できるようにする組み込みの HTTP クライアント機能を提供します。
  4. デバッグと検査:

    • リクエストがブレークポイントに到達すると、アプリケーションはその時点で一時停止します。
    • このとき、変数値を確認および変更したり、アプリケーションのステータスを観察したりできます。
    • ステップ オーバー (F8) やステップ イン (F7) などの関数を使用して、コードをステップ実行します。
  5. リクエストの詳細を表示:

    • ブレークポイントでは、リクエスト パラメータ、リクエスト ヘッダーなど、HTTP リクエストの詳細情報を表示できます。
  6. 応答を調整して実行を続行します

    • 必要に応じて、変数の値を変更したり、デバッガーで応答を調整したりできます。
    • 応答が返されるまでプログラムの実行を続けます。
  7. ログと出力:

    • ログおよびプログラム出力情報については、IDE のコンソール出力を表示します。
  8. 条件付きブレークポイント:

    • 特定の条件が満たされた場合にのみ実行を一時停止したい場合は、条件付きブレークポイントを設定できます。
  9. デバッグ セッションを終了します

    • デバッグが完了したら、「停止」ボタンをクリックしてデバッグセッションを終了します。
  10. ログ印刷を使用します

    • 実行フローを中断したくない場合は、ログ出力ステートメントをコードに追加して、プログラムの実行を追跡できます。

ネットワーク リクエストをデバッグするときは、リクエストが Spring Boot アプリケーションに確実に到達できるように、ネットワーク環境、特にプロキシ設定、ポート構成などが正しく構成されていることを確認してください。このようなデバッグ プロセスを通じて、Spring Boot アプリケーションの GET リクエストを詳細に理解して処理できます。

このアプローチを使用すると、効率的なデバッグを可能にしながら、IDE 内から HTTP リクエストの送受信を簡単に完全に制御できます。これは、Spring Boot アプリケーションで REST API を迅速にテストおよびデバッグするのに非常に便利です。

補足: idea で Java プロジェクトをデバッグする方法

IntelliJ IDEA での Java プロジェクトのデバッグは強力かつ不可欠な機能であり、複雑な問題を特定して解決するために特に重要です。IntelliJ IDEA で Java プロジェクトをデバッグする方法の手順は次のとおりです。

  1. ブレークポイントを設定します:

    • Java プロジェクトを開き、デバッグする部分を見つけます。
    • 行番号の横をクリックするか、ショートカット キー (Windows/Linux Ctrl+F8、Mac の場合Cmd+F8) を使用して、プログラムを一時停止するコード行にブレークポイントを設定します。
  2. デバッグセッションを開始します

    • デバッグ セッションを開始するには、IDE インターフェイスの「バグ」アイコン (デバッグ アイコン) をクリックするか、ショートカット キー ( Shift+F9) を使用します。
    • プロジェクトがコンパイルされ、正しい構成で実行されていることを確認してください。
  3. 変数と式を表示します

    • プログラムの実行がブレークポイントに達すると、一時停止します。この時点で、変数の値を表示して評価できます。
    • 現在のスコープ内の変数を表示するには、「変数」ウィンドウを使用します。
    • 式評価関数を使用して、特定の式を評価できます。
  4. コードをステップ実行します

    • 「ステップ オーバー」(F8) を使用して、コードの現在の行を実行し、次の行に移動します。
    • メソッド呼び出しがある場合は、「ステップイン」(F7) を使用してメソッドに入ります。
    • 現在のメソッドを終了し、呼び出された場所に戻るには、「ステップアウト」(Shift+F8) を使用します。
  5. ログと出力を表示します

    • プログラム出力とログ情報については、コンソール ウィンドウを表示します。
  6. 変数値を変更します

    • デバッグ中に、変数の値を動的に変更して、さまざまな状況をテストできます。
  7. 条件付きブレークポイント:

    • 特定の条件が満たされた場合にのみ実行を一時停止したい場合は、条件付きブレークポイントを設定できます。ブレークポイントを右クリックし、条件を追加します。
  8. ウォッチ式:

    • 「監視」ウィンドウでは、監視する必要がある特定の式または変数を追加できます。
  9. デバッグ セッションを終了します

    • デバッグが完了したら、「停止」ボタン (赤い四角のアイコン) をクリックしてデバッグ セッションを終了できます。
  10. ログ ブレークポイントを使用します

    • ログ ブレークポイントを使用すると、プログラムを一時停止せずに特定の情報を出力できるため、アプリケーションのフローを中断せずにデバッグするのに役立ちます。

おすすめ

転載: blog.csdn.net/wtyuong/article/details/135232390