Кстати о транзакциях …
Spring — это легковесная платформа Java-приложений с открытым исходным кодом, которая упрощает процесс разработки корпоративного программного обеспечения для языка программирования Java. Инфраструктура Spring включает в себя множество основных функций, которые поддерживают хорошие методы разработки программного обеспечения, такие как внедрение зависимостей и архитектурный шаблон модель-представление-контроллер (MVC).
Реактивное программирование — это декларативная парадигма программирования, которая работает с асинхронными потоками данных, чтобы реагировать на события в реальном времени и создавать масштабируемые, отказоустойчивые, параллельные приложения. Начиная с Spring Framework 5.2 M2, Spring включает поддержку управления реактивными транзакциями .
Spring включает в себя модуль Spring Data Redis для совместимости с Redis, хранилищем структуры данных в памяти, часто используемым для создания баз данных NoSQL. Однако Spring не предоставляет поддержку транзакций на основе Redis из коробки. По этой причине многие разработчики Java используют стороннюю среду Java Redis, такую как Redisson, для выполнения реактивных транзакций Spring в Redis.
Хотите узнать больше о Spring? Посмотрите нашу
коллекцию учебников по Spring Framework .
Redisson: реактивные весенние транзакции в Redis
Redisson — это сторонний Java-клиент Redis с открытым исходным кодом. Включая распределенные реализации многих общих объектов и коллекций Java, Redisson значительно упрощает процесс использования Java с Redis.
Redisson предлагает поддержку для реактивных пружинных транзакций в Redis через интерфейсы , такие как RedissonReactiveClient , RTransactionReactive и ReactiveRedissonTransactionManager. Чтобы понять, как все это работает вместе, ниже приведен пример того, как выполнять реактивные Spring-транзакции в Redis с использованием Redisson:
Джава
xxxxxxxxxx
1
public class TransactionalBean {
2
4
private ReactiveRedissonTransactionManager transactionManager;
5
7
public Mono<Void> commitData() {
8
Mono<RTransactionReactive> transaction = transactionManager.getCurrentTransaction();
9
return transaction.flatMap(t -> {
10
RMapReactive<String, String> map = t.getMap("myMap");
11
return map.put("1", "2");
12
}).then();
13
}
14
}
16
19
20
public class RedissonReactiveTransactionContextConfig {
21
22
23
public TransactionalBean transactionBean() {
24
return new TransactionalBean();
25
}
26
27
28
public ReactiveRedissonTransactionManager transactionManager(RedissonReactiveClient redisson) {
29
return new ReactiveRedissonTransactionManager(redisson);
30
}
31
32
destroyMethod="shutdown") (
33
public RedissonReactiveClient redisson( ("classpath:/redisson.yaml") Resource configFile) throws IOException {
34
Config config = Config.fromYAML(configFile.getInputStream());
35
return Redisson.createReactive(config);
36
}
37
38
}
Транзакции Reactive Spring в Redis являются лишь одним примером того, как разработчики могут реализовать реактивное программирование, транзакции Java и среду Spring с помощью Redisson. Среда Spring полностью совместима с Redis, благодаря Java-клиенту Redisson для Redis.
Чтобы начать использовать Spring с Redisson, ознакомьтесь с разделом « Конфигурация » в вики проекта Redisson. Для получения дополнительной информации о реактивном программировании и реактивных транзакциях Spring в Redis посетите веб-сайт Redisson .
Дальнейшее чтение
Использование Spring Data Redis в Spring Boot 2.0 для написания пользовательского запроса