Spring5 WebFlux, как вернуть пользовательские данные JSON? - PullRequest
0 голосов
/ 15 октября 2018

когда я не использую webflux, мой код

1.public Map<String, Object> registerService(User user) {
    Map<String, Object> map = new HashMap<>(8);
    map.put("status":1);
    userRepository.save(user);
    return map;

, когда я использовал webflux, мой код

2.public Mono<Map<String, Object>> registerService(User user) {
    Map<String, Object> map = new HashMap<>(8);
    map.put("status", 1);
    userRepository.save(user);
    return Mono.just(map);
}

и 2. ответ "{" status ": 1} ", но пользователь не вставляет монго

в webflux, я не могу получить 1. ответ, так как это сделать?

Я не хочу возвращатьсяПользователь, просто верни мне свою Карту и вставь в mongodb

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Предполагая, что тип возврата вашего репозитория пользователя также Mono, и вы хотели бы вернуть свою пользовательскую карту, вы можете сделать

public Mono<Map<String, Object>> registerService(User user) {
    return userRepository.save(user)
        .map(__ -> {
            Map<String, Object> map = new HashMap<>();
            map.put("status", 1);
            return map;
        });
}

в приведенном выше коде, вы не разорвете реактивную цепочку,но вы возвращаете свою пользовательскую карту, как вы хотели.

0 голосов
/ 15 октября 2018

Вы должны подписаться на Mono, userRepository.save(obj).subscribe().

...