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

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

1. Обзор

Безопасная связь играет важную роль в современных приложениях. Связь между клиентом и сервером по простому HTTP не является безопасной. Для готового к производству приложения мы должны включить HTTPS через протокол TLS (Transport Layer Security) в нашем приложении. В этом руководстве мы обсудим, как включить технологию TLS в приложении Spring Boot.

2. Протокол TLS

TLS обеспечивает защиту данных при передаче между клиентом и сервером и является ключевым компонентом протокола HTTPS. Secure Sockets Layer (SSL) и TLS часто используются взаимозаменяемо, но это не одно и то же . По сути, TLS является преемником SSL. TLS может быть реализован как односторонним, так и двусторонним.

2.1. Односторонний TLS

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

1. Обзор

В этом руководстве мы узнаем, как настроить REST в Spring, включая коды ответов контроллера и HTTP, настройку сортировки полезной нагрузки и согласование содержимого.

2. Понимание REST в Spring

Платформа Spring поддерживает два способа создания сервисов RESTful:

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

1. Обзор

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

2. Использование String.substring()

Самый простой способ — использовать встроенный метод substring() класса String .

Чтобы удалить последний символ данной строки, мы должны использовать два параметра: 0 в качестве начального индекса и индекс предпоследнего символа. Мы можем добиться этого, вызвав метод String length() и вычтя 1 из результата.

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

1. Обзор

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

2. Оператор XOR

Начнем с напоминания о семантике операции XOR . Логическая операция XOR , исключающее или , принимает два логических операнда и возвращает значение true тогда и только тогда, когда операнды различны. И наоборот, он возвращает false, если два операнда имеют одинаковое значение.

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

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

1. Введение

Spring позволяет нам прикреплять пользовательские действия к созданию и уничтожению бина . Мы можем, например, реализовать интерфейсы InitializingBean и DisposableBean .

В этом кратком руководстве мы рассмотрим второй вариант — аннотации @PostConstruct и @PreDestroy .

2. @PostConstruct

Spring вызывает методы, аннотированные @PostConstruct , только один раз, сразу после инициализации свойств компонента . Имейте в виду, что эти методы будут работать, даже если инициализировать нечего.

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

1. Обзор

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

Мы можем использовать инструмент сборки, такой как Maven , для выполнения наших тестов, или мы можем запустить их напрямую с помощью команды java .

Рассмотрим оба подхода.

2. Пример обзора проекта

В нашем примере давайте воспользуемся кодом, содержащим одну службу, которая форматирует дату в строку:

public class DateSerializerService {
public String serializeDate(Date date, String format) {
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
return dateFormat.format(date);
}
}

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

1. Обзор

В этом руководстве мы узнаем , как использовать Spring OAuth2RestTemplate для выполнения вызовов REST OAuth2 .

Мы создадим веб-приложение Spring, способное отображать репозитории учетной записи GitHub.

2. Конфигурация Maven

Во- первых, нам нужно добавить зависимости spring-boot-starter-security и spring-security-oauth2-autoconfigure в наш pom.xml . Поскольку мы создаем веб-приложение, нам также необходимо включить артефакты spring-boot-starter-web и spring-boot-starter-thymeleaf .

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

1. Введение

Сборщик мусора (GC) обрабатывает управление памятью в Java. В результате программистам не нужно явно заботиться о выделении и освобождении памяти.

В Java JVM вначале резервирует определенный объем памяти. Иногда фактическая используемая память значительно меньше зарезервированного объема. В таких случаях мы предпочитаем возвращать лишнюю память ОС.

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

В этом руководстве мы рассмотрим управление памятью с помощью GC и его взаимодействие с ОС.

2. Организация памяти JVM

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

1. Обзор

Классы Buffer — это основа, на которой построен Java NIO. Однако в этих классах наиболее предпочтительным является класс ByteBuffer . Это потому, что тип byte является наиболее универсальным. Например, мы можем использовать байты для составления других небулевых примитивных типов в JVM. Кроме того, мы можем использовать байты для передачи данных между JVM и внешними устройствами ввода-вывода.

В этом руководстве мы рассмотрим различные аспекты класса ByteBuffer .

2. Создание байтового буфера

ByteBuffer — это абстрактный класс, поэтому мы не можем создать новый экземпляр напрямую. Однако он предоставляет статические фабричные методы для облегчения создания экземпляра. Вкратце, есть два способа создать экземпляр ByteBuffer , путем выделения или переноса:

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

1. Весна и Ява

>> JDK 18 и JDK 19: что мы знаем на данный момент [ infoq.com ]

Есть четкие ожидания от Java 18, но у Java 19 могут быть некоторые интересные перспективы , такие как Project Loom.

>> MutationQuery и SelectionQuery в Hibernate 6 [ thorben-janssen.com ]

Введение в SelectionQuery и MutationQuery путем создания, настройки и выполнения запросов на выборку и обновление к базе данных.

>> Поиск разрешенных подклассов [ javaspecialists.eu ]