Перейти к основному содержимому

· 3 мин. чтения

1. Обзор

В этой статье будет показано, как настроить Spring RestTemplate для использования службы, защищенной с помощью дайджест-аутентификации .

Как и в случае с базовой аутентификацией, после того, как в шаблоне будет установлена дайджест-аутентификация, клиент сможет выполнить необходимые шаги безопасности и получить информацию, необходимую для заголовка авторизации :

Authorization: Digest 
username="user1",
realm="Custom Realm Name",
nonce="MTM3NTYwOTA5NjU3OTo5YmIyMjgwNTFlMjdhMTA1MWM3OTMyMWYyNDY2MGFlZA==",
uri="/spring-security-rest-digest-auth/api/foos/1",
....

С помощью этих данных сервер может правильно аутентифицировать запрос и вернуть ответ 200 OK.

2. Настройте RestTemplate

· 15 мин. чтения

1. Обзор

Поддерживать порядок в коде не всегда легко. К счастью для нас, наши IDE в настоящее время довольно умны и могут помочь нам в этом. В этом руководстве мы сосредоточимся на IntelliJ IDEA, редакторе Java-кода JetBrains.

Мы увидим несколько функций, предлагаемых редактором для рефакторинга кода , от переименования переменных до изменения сигнатуры метода.

2. Переименование

2.1. Базовое переименование

· 4 мин. чтения

1. Обзор

Большинство библиотек Java доступны в виде файлов JAR . В этом руководстве мы рассмотрим, как получить имена классов внутри заданного файла JAR из командной строки и из программы Java.

Затем мы рассмотрим пример программы на Java, загружающей классы из заданного файла JAR во время выполнения.

2. Пример файла JAR

В этом руководстве мы возьмем файл stripe-0.0.1-SNAPSHOT.jar в качестве примера, чтобы узнать, как получить имена классов в файле JAR:

· 4 мин. чтения

1. Обзор

Иногда мы можем столкнуться с AbstractMethodError во время выполнения нашего приложения. Если мы плохо знаем эту ошибку, может потребоваться некоторое время, чтобы определить причину проблемы.

В этом уроке мы более подробно рассмотрим AbstractMethodError . Разберемся, что такое AbstractMethodError и когда это может произойти.

2. Введение в AbstractMethodError

AbstractMethodError возникает, когда приложение пытается вызвать нереализованный абстрактный метод.

· 4 мин. чтения

1. Обзор

Иногда при написании модульных тестов нам нужно сделать независимое от порядка сравнение списков. В этом коротком руководстве мы рассмотрим различные примеры написания таких модульных тестов.

2. Настройка

Согласно документации Java List#equals , два списка равны, если они содержат одни и те же элементы в одном и том же порядке. Следовательно, мы не можем просто использовать метод equals , так как мы хотим выполнять независимое от порядка сравнение.

В этом руководстве мы будем использовать эти три списка в качестве примеров входных данных для наших тестов:

· 11 мин. чтения

1. Обзор

В этом уроке мы увидим, как мы можем использовать BitSet для представления вектора битов.

Во-первых, мы начнем с обоснования отказа от использования boolean[] . Затем, ознакомившись с внутренним устройством BitSet , мы более подробно рассмотрим его API.

2. Массив битов

Кто-то может возразить, что для хранения массивов битов и управления ими следует использовать логическое значение [] в качестве нашей структуры данных. На первый взгляд, это может показаться разумным предложением.

· 2 мин. чтения

1. Обзор

В этом кратком руководстве мы познакомимся с несколькими способами узнать, является ли каталог пустым или нет.

2. Использование Files.newDirectoryStream

Начиная с Java 7, метод Files.newDirectoryStream возвращает DirectoryStream <Path> для перебора всех записей в каталоге . Таким образом, мы можем использовать этот API, чтобы проверить, является ли данный каталог пустым или нет:

public boolean isEmpty(Path path) throws IOException {
if (Files.isDirectory(path)) {
try (DirectoryStream<Path> directory = Files.newDirectoryStream(path)) {
return !directory.iterator().hasNext();
}
}

return false;
}

· 2 мин. чтения

1. Обзор

В этом кратком руководстве мы обсудим, как мы можем проверить, является ли метод статическим или нет в Java, с помощью API Reflection .

2. Пример

Чтобы продемонстрировать это, мы создадим класс StaticUtility с некоторыми статическими методами:

public class StaticUtility {

public static String getAuthorName() {
return "Umang Budhwar";
}

public static LocalDate getLocalDate() {
return LocalDate.now();
}

public static LocalTime getLocalTime() {
return LocalTime.now();
}
}

· 4 мин. чтения

1. Обзор

В этом кратком руководстве мы познакомимся с различными способами проверки существования файла или каталога.

Сначала мы начнем с современных API-интерфейсов NIO, а затем рассмотрим устаревшие подходы к вводу-выводу.

2. Использование java.nio.file.Files

Чтобы проверить, существует ли файл или каталог, мы можем использовать метод Files.exists (Path) . Как видно из сигнатуры метода, мы должны сначала получить путь к нужному файлу или каталогу. Затем мы можем передать этот путь в метод Files.exists(Path) :

· 5 мин. чтения

1. Обзор

В Java класс java.lang.Class является точкой входа для всех операций отражения . Когда у нас есть объект java.lang.Class , мы можем вызывать соответствующие методы для получения объектов классов отражения.

В этом руководстве мы обсудим различия между двумя разными способами получения объекта java.lang.Class :

  • Вызов метода Object.getClass()
  • Использование синтаксиса .class

2. Краткое введение в два подхода