我是新来的Spring。我试图以函数的方式为SpringWebFlux制作一个示例应用程序。为什么我们的处理函数不能传递通量。是否有任何方法可以让路由器函数接受它,因为据说路由器函数接受服务器响应的子类型。
显示处理程序代码
public Mono<ServerResponse> getShowList(ServerRequest request){
Flux<Show> showList = showRepository.findAll();
Flux<ShowVo> showVoList= showList.map(s -> {
return new ShowVo(s.getId(), s.getTitle());
});
return ServerResponse.ok().contentType(MediaType.APPLICATION_JSON).body(showVoList, ShowVo.class); }
这里,我正在通过单声道
路由器功能代码
@Bean
public RouterFunction<ServerResponse> routeShow(ShowHandler showHandler){
return RouterFunctions.route(RequestPredicates.GET("/shows").and(RequestPredicates.accept(MediaType.APPLICATION_JSON)), showHandler::getShowList)
}
}
所以有没有办法做到这一点,我已经阅读了不同的文章。我只能找到Mono,但如果我使用基于注释的webflux,我可以传递flux。
为什么webhandler不接受流到服务器,而您只能返回流是因为HTTP协议规范。
如果您希望将数据流式传输到服务器,并将数据流式传输到客户端(全双工),则需要将 websockets 与 webflux 结合使用。
您可以在webflux文档中阅读所有相关内容:
HTTP与Websockets
我的讲师在课堂上问过我这个问题,我想知道为什么是宏而不是函数?
我们知道,在C语言中,我们可以将数组的引用作为参数传递,比如
现在,调用可能会调用的copy构造函数(它很可能是copy省略的,所以情况并非如此)。但将导致复制。如果包含大量数据,则可能是一个问题。 我们将通过将其作为常量引用()传递来改进它,以消除不需要的副本。只要是就可以。如果不是,则调用将导致编译错误(丢失限定符)。 所以,为什么要费心使用常量引用,只使用reference()。这很好,但对于第一种情况就不起作用了,因为将r-value绑定到(非常量)
我正在使用库在我的Spring启动应用程序中显示摇摆不定的UI API文档 http://localhost:8080/swagger-ui.html。 简而言之,这个问题是:如何使用springdoc openapi webflux ui显示应用程序API文档? 我找到了原因
好吧,所以我有下面的方法,但我试图摆脱使用。块(),因此尝试实现Mono,但得到错误< code >所需的类型:List 原始代码 我尝试以非阻塞方式重构使用 Mono
有什么简单的方法可以实现这一点吗? 这是我导航到路线的代码 这是我的路由模块 基本上,我希望执行与CreateAlbum组件是当前组件的子组件相同的操作,在这种情况下,我将使用@Input()