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

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

1. Обзор

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

Чтобы изучить R2DBC, мы создадим простое приложение Spring WebFlux REST, которое реализует операции CRUD для одного объекта, используя для достижения этой цели только асинхронные операции.

2. Что такое R2DBC ?

Реактивная разработка находится на подъеме: новые фреймворки появляются каждый день, а существующие получают все большее распространение. Однако основной проблемой реактивной разработки является тот факт, что доступ к базе данных в мире Java/JVM остается в основном синхронным . Это прямое следствие того, как был разработан JDBC, и привело к некоторым уродливым хакам для адаптации этих двух принципиально разных подходов.

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

1. Обзор

В этом уроке мы поймем, что такое изоморфное приложение. Мы также обсудим Nashorn , движок JavaScript в комплекте с Java.

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

2. Немного истории

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

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

1. Обзор

В этом руководстве мы дадим обзор того, что такое SirixDB , и наиболее важные цели его разработки.

Далее мы рассмотрим низкоуровневый транзакционный API на основе курсора.

2. Возможности SirixDB

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

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

1. Обзор

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

2. Краткое введение в машинное обучение

Машинное обучение является частью более широкой концепции, известной как искусственный интеллект . Машинное обучение относится к изучению статистических моделей для решения конкретных задач с помощью шаблонов и выводов. Эти модели «обучаются» для конкретной задачи с помощью обучающих данных, взятых из проблемного пространства.

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

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

1. Обзор

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

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

2. Пример использования

Допустим, у нас есть пакетное задание, которое читает входной CSV-файл:

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

1. Обзор

В этом руководстве мы рассмотрим процесс непрерывной интеграции/непрерывного развертывания (CI/CD) и реализуем его основные части.

Мы создадим простое приложение Spring Boot, а затем отправим его в общий репозиторий Git. После этого мы создадим его с помощью службы интеграции зданий, создадим образ Docker и отправим его в репозиторий Docker.

В конце мы автоматически развернем наше приложение в сервисе PaaS (Heroku).

2. Контроль версий

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

1. Обзор

Аннотация Spring @Transactional предоставляет хороший декларативный API для обозначения границ транзакций.

За кулисами аспект заботится о создании и обслуживании транзакций, поскольку они определены в каждом экземпляре аннотации @Transactional . Такой подход позволяет легко отделить нашу основную бизнес -логику от сквозных задач, таких как управление транзакциями.

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

2. Проблемы в раю

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

1. Обзор

В этом кратком руководстве мы покажем, как читать файл свойств YAML с помощью аннотации @PropertySource в Spring Boot.

2. @PropertySource и формат YAML

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

Однако по умолчанию @PropertySource не загружает файлы YAML . Этот факт прямо упоминается в официальной документации .

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

1. Введение

На первый взгляд может показаться, что аннотации @NotNull и @Column(nullable = false) служат одной и той же цели и могут использоваться взаимозаменяемо. Однако, как мы вскоре увидим, это не совсем так.

Несмотря на то, что при использовании в объекте JPA оба они по существу предотвращают сохранение нулевых значений в базовой базе данных, между этими двумя подходами есть существенные различия.

В этом кратком руководстве мы сравним ограничения @NotNull и @Column(nullable = false) .

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

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

1. Обзор

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

2. Игнорировать нулевые значения на карте

У Джексона есть простой, но полезный способ глобального управления тем, что происходит с нулевыми значениями, когда карта сериализуется:

ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(Include.NON_NULL);