java - spring5 webflux,如何返回自定义json数据?

标签 java spring spring-mvc spring-boot spring-webflux

当我不使用 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}”,但是用户不插入mongo

在 webflux 中,我无法得到与 1. 相同的响应,那么该怎么做?

我不想返回用户,只返回我自定义的 map ,然后用户插入mongodb

最佳答案

假设您的用户存储库返回类型也是 Mono,并且您想返回自定义 map ,您可以这样做

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;
        });
}

在上面的代码中,您没有破坏 react 链,而是按照您想要的方式返回自定义 map 。

关于java - spring5 webflux,如何返回自定义json数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52821060/

相关文章:

java - ConcurrentModificationException 和多个 catch block

java - Singleton Bean 中可能存在的竞争条件

java - HTTP 状态 500 - javax.el.PropertyNotFoundException

java - 重定向到 URL 时无法访问 SpringMVC Controller 中的请求参数

java - com.mysql.jdbc.MysqlDataTruncation : Data truncation: Data too long for column 'DATE' at row 1

javascript - 使用 Rhino 代替 ScriptEngine 在 Java 中运行 Javascript 代码

java - Android 自动化错误显示 : "Security exception: Permission Denial: starting Intent"

java 调度程序 Spring 与 Quartz

spring - 使用Spring和Jersey测试框架进行单元测试

当 Accept header 为 */* 时,Spring 使用 @ResponseBody 返回 json 抛出 HttpMediaTypeNotAcceptableException