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

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

1. Введение

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

Более того, нам необходимо обеспечить согласованность данных между одновременным чтением и обновлением.

Для этого мы можем использовать оптимистичный механизм блокировки, предоставляемый Java Persistence API. Это приводит к тому, что несколько одновременных обновлений одних и тех же данных не мешают друг другу.

2. Понимание оптимистической блокировки

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

1. Введение

В этом кратком руководстве мы обсудим использование аннотации @RunWith в среде JUnit 5.

В JUnit 5 аннотация @RunWith была заменена более мощной аннотацией @ExtendWith .

Однако аннотацию @RunWith по- прежнему можно использовать в JUnit 5 для обратной совместимости.

2. Запуск тестов с помощью средства запуска на основе JUnit 4

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

1. Обзор

При использовании JUnit нам может понадобиться, чтобы наши тесты имели доступ к их имени. Это может помочь с сообщениями об ошибках, особенно для тестов с именами, сгенерированными системой.

В этом кратком руководстве мы рассмотрим, как получить имя текущего тестового примера как в JUnit 4 , так и в JUnit 5 .

2. Подход JUnit 5

Давайте рассмотрим два сценария. Во-первых, мы увидим, как получить доступ к имени одного теста. Это имя обычно предсказуемо, так как это, вероятно, имя функции или значение аннотации @DisplayName . Однако, если мы используем параметризованные тесты или генераторы отображаемых имен , нам может понадобиться знать имя, предоставленное JUnit.

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

1. Обзор

Как мы знаем, метод toString() используется для получения строкового представления объекта Java.

Project Lombok может помочь нам генерировать согласованные строковые представления без шаблонов и загромождения исходного кода. Это также может повысить удобство сопровождения, особенно в тех случаях, когда классы могут содержать большое количество полей.

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

2. Настройка

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

1. Введение

Spring Cloud Contract — это проект, который, проще говоря, помогает нам писать Consumer-Driven Contracts (CDC) .

Это обеспечивает контракт между производителем и потребителем в распределенной системе — как для взаимодействия на основе HTTP, так и на основе сообщений.

В этой быстрой статье мы рассмотрим написание тестовых примеров на стороне производителя и потребителя для Spring Cloud Contract посредством HTTP-взаимодействия.

2. Производитель — серверная часть

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

1. Обзор

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

2. С Spring Boot 2.2 или более поздней версии

Начиная с Spring Boot 2.2 мы можем использовать метод getBeansWithAnnotation .

Давайте построим пример. Во-первых, мы определим нашу пользовательскую аннотацию. Давайте аннотируем его с помощью @Retention (RetentionPolicy.RUNTIME) , чтобы программа могла получить доступ к аннотации во время выполнения:

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

1. Введение

Проще говоря, CharSequence и String — это две разные фундаментальные концепции в Java.

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

2. Последовательность символов

CharSequence — это интерфейс, представляющий последовательность символов. Изменчивость не обеспечивается этим интерфейсом. Поэтому и изменяемые, и неизменяемые классы реализуют этот интерфейс.

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

1. Обзор

Полный квадрат — это число, которое можно представить как произведение двух равных целых чисел.

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

2. Проверка того, является ли целое число идеальным квадратом

Как мы знаем, Java предоставляет нам два типа данных для определения целого числа. Первый — это int , который представляет число в 32 битах, а другой — long , который представляет число в 64 битах. В этой статье мы будем использовать тип данных long для обработки наихудшего случая (наибольшего возможного целого числа).

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

1. Введение

Абстракция — одна из ключевых особенностей объектно-ориентированного программирования. Это позволяет нам скрыть сложности реализации, просто предоставляя функциональные возможности через более простые интерфейсы. В Java мы достигаем абстракции, используя либо интерфейс, либо абстрактный класс .

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

2. Класс против интерфейса

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

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

1. Обзор

В этом руководстве мы обсудим сортировку объектов в списке по дате. Большинство методов или примеров сортировки позволяют пользователю сортировать список в алфавитном порядке, но в этой статье мы обсудим, как это сделать с объектами Date .

Мы рассмотрим использование класса Comparator в Java для пользовательской сортировки значений наших списков .

2. Настройка

Давайте посмотрим на сущность Employee , которую мы будем использовать в этой статье: