Если я расширяю с CrudRepository и отправляю ответ с Mono.just (data-from-db) и Flux.just (data-from-db), тогда все в порядке.
Ух ты - нет, это не так. Вы могли бы подумать , что все в порядке, но это вводит блокирующие веб-вызовы в реактивную цепочку, которая ужасно замедлит процесс, как только у вас будет несколько параллельных вызовов. Хуже того, вы создали метод, который «выглядит» реактивным, но не таковым - обычно известным как «метод самозванца».
Проще говоря, невозможно принятьблокировать код и сделать его реактивным - обернуть его в Mono.just()
не работает. Библиотека должна быть построена асинхронно с нуля.
Плохая новость заключается в том, что, насколько я знаю, в настоящее время (ноябрь 2019 г.) нет поддержки ReactiveCrudRepository
хранилища для DynamoDB, так что если выпридется использовать это, вы немного застряли.
Хорошая новость заключается в том, что Amazon теперь предоставляет асинхронный клиент для DynamoDB , и вы можете легко обернутьCompleteableFuture
в Mono
, позвонив по номеру Mono.fromFuture()
- чтобы вы могли использовать это, чтобы оставаться реактивным и при этом иметь поддержку DynamoDB.