У меня есть огромное корпоративное Java-приложение, использующее «старый добрый» набор технологий: Spring Web MVC, PostgreSQL, MyBatis. Давайте предположим, что существует реальная необходимость перевести приложение на реактивный стек. Это означает, что старый драйвер Postrges JDBC и MyBatis больше не будут применимы, поскольку они имеют блокирующий характер. А это, в свою очередь, означает, что весь уровень БД (сопоставители MyBatis) должен быть реорганизован с использованием одной из реализаций r2dbc. И это действительно большое дело!
Итак, вопрос: есть ли какой-нибудь хак, позволяющий использовать существующие картографы вместе с реактивными Fluxes и Monos? Может быть, какое-нибудь решение типа обратного вызова или что-то в этом роде?
UPD
Mono имеет метод fromFuture. Следующий код действителен и работает так, как ожидалось. Но действительно ли оно реактивно по своему духу?
public Mono getUserById(Long id) {
return Mono.fromFuture(
CompletableFuture.supplyAsync(() -> userMapper.getUser(id)));
}