Практика отладки проектов Java: как эффективно отлаживать запросы GET в проектах Spring Boot и устранять несоответствия регистра с помощью методаqualsIgnoreCase
- напиши спереди
- Весь процесс
- Java метод равноIgnoreCase()
- Как отладить проект SpringBoot в идее
-
-
- Использование встроенного HTTP-клиента в IntelliJ IDEA
- Устанавливайте точки останова и отлаживайте
- Дополнение: Как отлаживать Java-проекты в идее
-
напиши спереди
Недавно я столкнулся с проблемой при запуске Java-проекта.
Под удаленным руководством @tanyue в ходе пошагового процесса отладки было обнаружено, что случай несогласован, что привело к выводу, что поля не совпадают.
Наконец, после замены метода «equals()» на «equalsIgnoreCase()» проблема была успешно решена!
Equals() оценит разницу регистра, но методqualsIgnoreCase() не оценит регистр.
Давно не прикасался к Java, во время просмотра узнал что-то новое об отладке, поэтому запишу сюда.
Весь процесс
Во время разработки недавнего Java-проекта я столкнулся с загадочной проблемой. По большей части проект работает нормально, но в некоторых конкретных случаях он работает не так, как ожидалось. Сначала я подумал, что это логическая ошибка или какой-то скрытый баг, но после внимательного просмотра кода явных ошибок обнаружено не было.
Г-н Дан Да помог с дистанционным руководством. Еще раз спасибо за его время и энергию. В этот период, поскольку у меня два экрана, некоторые операции выполняются немного сложно и странно.
Чтобы обнаружить проблему, мы начали детальный процесс отладки. Распечатывая журналы и шаг за шагом отслеживая, я обнаружил, что проблема заключалась в регистре строки. В Java сравнение строк по умолчанию чувствительно к регистру. Это означает, что даже если две строки имеют одинаковое буквальное значение, но несовместимый регистр, equals()
они будут считаться неравными при сравнении с использованием этого метода.
Проблема в том, что при сравнении двух, казалось бы, идентичных строк результат не «равен», как ожидалось.
В этом проекте возникла несогласованность регистра, поскольку некоторые поля были введены пользователем, а другие были созданы системой. Вот почему в некоторых случаях, даже если поля кажутся одинаковыми, программа определяет, что они не равны.
Окончательное решение было довольно простым, но очень эффективным. equals()
Замените все вызовы методов, включающие строки, на equalsIgnoreCase()
. Этот метод решил мою проблему, игнорируя различия в регистре при сравнении строк. Например, "example".equalsIgnoreCase("Example")
вернет true
, а использование equals()
вернет false
.
Этот опыт научил меня быть особенно осторожным при сравнении строк, особенно в сценариях, включающих пользовательский ввод и данные, генерируемые системой. Я также понимаю, что иногда решение проблемы может быть удивительно простым, и главное — терпение и тщательная отладка.
Java метод равноIgnoreCase()
Ссылка : https://www.runoob.com/java/java-string-equalsignorecase.html.
Класс Java String : метод EqualsIgnoreCase() используется для сравнения строки с указанным объектом, независимо от регистра.
грамматика :
public boolean equalsIgnoreCase(String anotherString)
Параметры : anObject – объект, с которым сравнивается строка.
Возвращаемое значение : true, если данный объект равен строке, в противном случае — false.
Пример : метод Equals() определит разницу регистра, но методqualsIgnoreCase() не определит разницу регистра:
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 вы можете напрямую вызывать запрос GET в проекте Spring Boot без использования внешних инструментов, таких как Postman или браузер. IntelliJ IDEA предоставляет встроенную функцию HTTP-клиента, которая позволяет отправлять HTTP-запросы и просматривать ответы непосредственно из IDE.
Использование встроенного HTTP-клиента в IntelliJ IDEA
-
Создайте файл HTTP-запроса:
- В проекте щелкните правой кнопкой мыши каталог исходного кода или любой каталог.
- Выберите
New
->HTTP Request
. - Это создаст новый
.http
файл.
-
Написать HTTP-запрос: (Вы также можете нажать, чтобы сгенерировать автоматически)
- В
.http
файле пропишите GET-запрос. Например:GET http://localhost:8080/your-endpoint
- Убедитесь, что URL-адрес и номер порта соответствуют конфигурации приложения Spring Boot и заменены
your-endpoint
фактическим путем к конечной точке.
- В
-
послать запрос:
- В
.http
файле нажмите зеленую кнопку воспроизведения рядом со строкой запроса, чтобы отправить запрос. - Вы также можете использовать сочетания клавиш (обычно Ctrl + Enter).
- В
-
Посмотреть ответ:
- После отправки запроса IDE отображает новое окно или область, где можно увидеть ответ HTTP.
- Ответ включает код состояния, информацию заголовка и тело ответа.
Устанавливайте точки останова и отлаживайте
Если вы хотите выполнить отладку при обработке этого запроса GET:
-
Установить точку останова:
- Найдите часть кода, которую вы хотите отладить, например метод, обрабатывающий запросы GET в контроллере.
- Установите точку останова рядом со строкой кода, в которой вы хотите, чтобы программа приостановила выполнение. Просто нажмите на пустое место рядом с номером строки, и вы увидите красную точку, указывающую, что точка останова установлена.
-
Запустите приложение в режиме отладки:
- Рядом с классом запуска проекта (обычно
@SpringBootApplication
это аннотированный класс) нажмите кнопку отладки (значок, похожий на ошибку) или используйте сочетание клавиш (обычно Shift+F9), чтобы запустить режим отладки.
- Рядом с классом запуска проекта (обычно
-
Отправьте GET-запрос:
- Используйте браузер, Postman или любой HTTP-клиент, чтобы отправить запрос GET к приложению Spring Boot, обязательно используя правильный URL-адрес и номер порта.
- В IntelliJ IDEA вы можете напрямую вызывать запрос GET в проекте Spring Boot без использования внешних инструментов, таких как Postman или браузер. IntelliJ IDEA предоставляет встроенную функцию HTTP-клиента, которая позволяет отправлять HTTP-запросы и просматривать ответы непосредственно из IDE.
-
Отладка и проверка :
- Когда запрос достигает точки останова, приложение приостанавливается в этой точке.
- В это время вы можете проверять и изменять значения переменных и наблюдать за состоянием приложения.
- Пошагово просматривайте код, используя такие функции, как «Шаг через» (F8) и «Шаг с заходом» (F7).
-
Посмотреть детали запроса :
- В точке останова вы можете просмотреть подробную информацию о HTTP-запросе, такую как параметры запроса, заголовки запроса и т. д.
-
Скорректируйте ответ и продолжите выполнение :
- При необходимости вы можете изменить значения переменных или скорректировать ответ в отладчике.
- Продолжайте выполнение программы до тех пор, пока не будет получен ответ.
-
Журналы и вывод :
- Просмотрите вывод консоли IDE для получения информации о журнале и выводе программы.
-
Условная точка останова :
- Если вы хотите приостановить выполнение только при выполнении определенного условия, вы можете установить условную точку останова.
-
Завершите сеанс отладки :
- После завершения отладки нажмите кнопку «Стоп», чтобы завершить сеанс отладки.
-
Используйте печать журнала :
- Если вы не хотите прерывать поток выполнения, вы можете добавить в код операторы печати журнала, чтобы отслеживать выполнение программы.
Обратите внимание: при отладке сетевых запросов убедитесь, что сетевое окружение настроено правильно, особенно настройки прокси-сервера, конфигурация порта и т. д., чтобы гарантировать, что запрос может достичь вашего приложения Spring Boot. Благодаря такому процессу отладки вы можете подробно понять и обработать запросы GET в приложениях Spring Boot.
Используя этот подход, легко получить полный контроль над отправкой и получением HTTP-запросов из IDE, обеспечивая при этом эффективную отладку. Это очень удобно для быстрого тестирования и отладки REST API в приложениях Spring Boot.
Дополнение: Как отлаживать Java-проекты в идее
Отладка проектов Java в IntelliJ IDEA — мощная и важная функция, особенно важная для выявления и решения сложных проблем. Вот шаги по отладке проекта Java в IntelliJ IDEA:
-
Установить точку останова :
- Откройте проект Java и найдите часть, которую хотите отладить.
- Нажмите рядом с номером строки или используйте горячую клавишу (в Windows/Linux
Ctrl+F8
, на MacCmd+F8
), чтобы установить точку останова в строке кода, где вы хотите приостановить работу программы.
-
Запустите сеанс отладки :
- Сеанс отладки можно запустить, щелкнув значок «ошибка» (значок отладки) в интерфейсе IDE или воспользовавшись клавишей быстрого доступа (
Shift+F9
). - Убедитесь, что проект скомпилирован и запущен с правильной конфигурацией.
- Сеанс отладки можно запустить, щелкнув значок «ошибка» (значок отладки) в интерфейсе IDE или воспользовавшись клавишей быстрого доступа (
-
Просмотр переменных и выражений :
- Когда выполнение программы достигает точки останова, оно приостанавливается. На этом этапе значение переменной можно просмотреть и оценить.
- Используйте окно «Переменные» для просмотра переменных в текущей области.
- Конкретные выражения можно оценить с помощью функции оценки выражений.
-
Пройдитесь по коду :
- Используйте «Шаг с обходом» (F8), чтобы выполнить текущую строку кода и перейти к следующей строке.
- Используйте «Шаг с заходом» (F7) для входа в метод, если есть вызов метода.
- Используйте «Выход» (Shift+F8), чтобы выйти из текущего метода и вернуться к тому месту, где он был вызван.
-
Просмотр журналов и вывода :
- Просмотрите окно консоли для вывода данных программы и информации журнала.
-
Изменить значение переменной :
- Во время отладки значения переменных можно изменять динамически для тестирования различных ситуаций.
-
Условная точка останова :
- Если вы хотите приостановить выполнение только при выполнении определенного условия, вы можете установить условную точку останова. Щелкните правой кнопкой мыши точку останова и добавьте условие.
-
Следите за выражением :
- В окне «Наблюдения» вы можете добавить определенные выражения или переменные, которые необходимо отслеживать.
-
Завершите сеанс отладки :
- После завершения отладки вы можете нажать кнопку «Стоп» (значок красного квадрата), чтобы завершить сеанс отладки.
-
Используйте точки останова журнала :
- Точки останова журнала позволяют распечатать конкретную информацию без приостановки работы программы, что полезно для отладки, не прерывая поток приложения.