Я практикую Reactor в Spring WebFlux и считаю, что кривая обучения довольно крутая. Все, что я хотел сделать, это что-то вроде:
Данные поступают с контроллера
Я делаю запрос для настроек сайта, который возвращает моно.
Я делаю запрос для репозитория пользователя (чтобы позже выяснить, был ли пользователь уже зарегистрирован или нет), который возвращает Mono.
Теперь я хочу сделать что-то вроде:
User user = new User();
userRepository.findByUsername(username).flatMap(dbUser -> Mono.error(new UserAlreadyRegisteredException()).switchOnEmpty(settingsRepository.getSettings().flatMap(settings -> validateUser(user,incomingData,settings)).then(userRepository.save(user));
//validateUser is a method which returns Mono<User> preferably with incomingData copied to the User object
Редактировать: проблема заключалась в том, что я сохранял настройки в @PostConstruct и не вызывал подписку.