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

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

1. Обзор

В этой статье мы обсудим транзакции только для чтения. Мы поговорим об их назначении и способах их использования, а также проверим некоторые их нюансы, связанные с производительностью и оптимизацией. Для простоты мы сосредоточимся на движке MySQL InnoDB . Но имейте в виду, что некоторая описанная информация может меняться в зависимости от базы данных/механизма хранения.

2. Что такое транзакция?

Транзакция — это атомарная операция, состоящая из одного или нескольких операторов . Это атомарно, потому что все операторы в этой операции либо завершаются успешно (фиксируются), либо терпят неудачу (откатываются), что означает все или ничего. Буква «A» в свойствах ACID представляет атомарность транзакций.

Еще одна важная вещь, которую нужно понять, это то, что все операторы в движке InnoDB становятся транзакциями, если не явно, то неявно . Такую концепцию становится намного сложнее понять, когда мы добавим параллелизм к уравнению. Затем нам нужно прояснить другое свойство ACID, «I» изоляции.

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

1. Введение

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

Мы уже знаем, как писать модульные тесты для классов приложений, и мы уже рассмотрели общие концепции тестирования в нашем руководстве по тестированию в Spring Boot . Итак, здесь мы сосредоточимся на интеграционном тестировании только уровня веб-сервиса, используя @WebServiceServerTest .

2. Тестирование веб-сервисов Spring

В Spring Web Services конечные точки являются ключевым понятием для реализации службы на стороне сервера. Специализированная аннотация @Endpoint помечает аннотированный класс как конечную точку веб-службы. Важно отметить, что эти конечные точки отвечают за получение сообщений запроса XML, вызов необходимой бизнес-логики и возврат результата в виде ответного сообщения .

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

1. Обзор

Иногда нам нужно установить заголовки запросов в наших HTTP-вызовах при использовании Feign . Feign позволяет нам создавать HTTP-клиенты с простым декларативным синтаксисом.

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

2. Пример

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

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

1. Обзор

JDBC предоставляет Java API для чтения фактических данных, хранящихся в таблицах базы данных. Кроме того, тот же API можно использовать для чтения метаданных о базе данных. Метаданные означают данные о данных, такие как имена таблиц, имена столбцов и типы столбцов.

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

2. Интерфейс базы данных метаданных

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

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

1. Обзор

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

2. Зависимости Maven

Настройка JUnit 5.x.0 довольно проста; нам просто нужно добавить следующую зависимость в наш pom.xml :

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

1. Введение

В этой статье мы подробно рассмотрим утверждения, доступные в JUnit.

После статей о переходе с JUnit 4 на JUnit 5 и A Guide to JUnit 5 мы подробно рассмотрим различные утверждения, доступные в JUnit 4 и JUnit 5.

Мы также отметим улучшения, внесенные в утверждения с помощью JUnit 5.

2. Утверждения

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

1. Введение

В этой статье мы рассмотрим новые функции среды Spring Security 5 для защиты реактивных приложений. Этот выпуск соответствует Spring 5 и Spring Boot 2.

В этой статье мы не будем вдаваться в подробности о самих реактивных приложениях, которые являются новой функцией фреймворка Spring 5. Обязательно ознакомьтесь со статьей Введение в Reactor Core для получения более подробной информации.

2. Настройка Мавена

Мы будем использовать стартеры Spring Boot для начальной загрузки нашего проекта со всеми необходимыми зависимостями.

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

1. Введение

В этом руководстве мы рассмотрим параллелизм в реактивных программах, написанных с помощью Spring WebFlux .

Мы начнем с обсуждения параллелизма в отношении реактивного программирования. После этого мы рассмотрим, как Spring WebFlux предлагает абстракции параллелизма для различных библиотек реактивного сервера.

2. Мотивация реактивного программирования

Типичное веб-приложение состоит из нескольких сложных взаимодействующих частей . Многие из этих взаимодействий носят блокирующий характер , например те, которые связаны с обращением к базе данных для выборки или обновления данных. Однако несколько других являются независимыми и могут выполняться одновременно, возможно, параллельно.

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

1. Обзор

В наших предыдущих статьях (на основе Activiti API с Java и Spring) мы видели, как программно управлять процессами. Если мы хотим настроить демонстрацию вместе с пользовательским интерфейсом для Activiti, у нас есть два веб-приложения, которые позволят нам сделать это всего за несколько минут.

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

Точно так же activiti-rest — это веб-приложение, которое предоставляет REST API для выполнения любых операций с процессом, задачей, процессом и т. д.

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

2. Загрузки

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

1. Обзор

Apache Cayenne — это библиотека с открытым исходным кодом, распространяемая по лицензии Apache, предоставляющая такие функции, как инструмент моделирования, объектно-реляционное сопоставление, также известное как ORM, для операций локального сохранения и удаленных служб.

В следующих разделах мы увидим, как взаимодействовать с базой данных MySQL с помощью Apache Cayenne ORM.

2. Зависимости Maven

Для начала нам просто нужно добавить следующие зависимости, чтобы подключить Apache Cayenne и MySQL к драйверу JDBC для доступа к нашей базе данных intro_cayenne :