当前位置: 首页 > 知识库问答 >
问题:

Spring WebFlux:控制器返回mono与mono

微生阳平
2023-03-14
    public Mono<MyPojo> monoPojo(String parameter) {
        return WebClient.create("http://...").get().retrieve().bodyToMono(MyPojo.class)
                .map(oneMyPojo -> unregisterRepository.insert(oneMyPojo))
                ;
    }
    public Mono<ResponseEntity<MyPojo>> monoResponseEntityPojo(String parameter) {
        return WebClient.create("http://...").get().retrieve().bodyToMono(MyPojo.class)
                .map(oneMyPojo -> unregisterRepository.insert(oneMyPojo))
                .map(ResponseEntity::ok)
                ;
    }

我很难理解mono 的用法。请问这个Mono 能给Mono带来什么样的好处?

谢谢。

共有1个答案

通飞尘
2023-03-14

让我们把一些事情弄清楚

ResponseEntity 来自org.springframework.http包,而ServerResponse来自org.springframework.web.reactive.function.server包。

这应该作为一个开始,给你一个提示,什么时候使用,什么地方。

如果在代码中查看这些类,您会发现它们的某些部分工作相同,但其他部分工作不同,尤其是它们存储主体和序列化主体的方式。

webflux中的处理程序函数筛选函数仅与ServerResponses一起使用。

现在回答您的问题,返回mono mono

如果您愿意,您可以完全自定义地构建responseentity,并返回任何状态代码、任何正文和任何标题等。

所以这一切都归结为你有多懒,你想让框架为你做多少,你想要显式地做多少,并自己键入一切,或者自定义一切。

我,我很懒,我只是返回一些有用的东西。

 类似资料:
  • 我想在上一次返回

  • 假设我有以下流程 只是为了理解 因此,我有 但我需要 继续皱眉 这个问题有什么好的解决办法吗?

  • 你好,我是拉威尔的新手,也许这对你们来说太傻了。在laravel 8中,路由web。php我创建了一条如下的路线: 我想问的是,我们也可以从回调视图返回控制器吗?所以在路由 /editprofile中,第二个参数不是'App\Http\Controller\SiteController@edit_profile',而是一个回调函数,如路由'/home'。 但是它返回错误哈哈。假设我不想用__con

  • 在Spring MVC框架中,当控制器返回接口类型时,Spring的消息转换器可以将返回值转换为适当的消息(如JSON)。 例如,当我调用“vehicle”api时,我可以得到一条JSON消息。 但是,网络流量的行为不同。当返回类型是一个单一的界面时,它只支持“内容类型:文本/事件流”。 在我看来,Webflux的行为令人不安。是虫子吗?我需要添加自定义MessageWriter来编码接口类型吗?

  • 我对反应性编程相对较新。我的问题是关于

  • 目标是打印标签的当前文本。标签在整个程序中不断变化,使用当前的方法,我只能检索标签的初始化值。 我用来检索控制器实例的内容: