Я практикую Reactor в Spring WebFlux и считаю, что кривая обучения довольно крутая. Все, что я хотел сделать, это что-то вроде:
Данные, поступающие от контроллера. Я запрашиваю настройки сайта, которые возвращают Mono. Я делаю запрос к репозиторию пользователей (чтобы позже узнать, был ли пользователь уже зарегистрирован или нет), который возвращает 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, и я не называл подписку.