webflux spring boot 应用程序的过滤器,返回 ResponseEntity<?>
Posted
技术标签:
【中文标题】webflux spring boot 应用程序的过滤器,返回 ResponseEntity<?>【英文标题】:Filters for webflux spring boot app, which return ResponseEntity<?> 【发布时间】:2019-06-10 13:14:09 【问题描述】:我的 Spring Boot 应用程序配置为反应式。但是我的 REST API 端点配置为返回没有 Mono 或 Flux 的 ResponseEntity。
@GetMapping("/wiki/test")
public ResponseEntity<?> test()
log.info("TEST CALLED????");
return ResponseEntity.ok().body("HALLO");
我想实现过滤器,它将检查每个端点的传入标头。旧的 Servlet 过滤器当然不起作用,对于 webflux 和其他的新 WebFilter 也不起作用。
我的项目位于githubwiki controller
我不想使用基于路由器的端点,我更喜欢 Spring boot 下的 Netty。我可以同时使用哪种过滤器:反应式和 servlet 应用程序?有什么建议吗?
【问题讨论】:
你为什么不返回 Mono如果您的问题是“我将编写什么样的代码来在反应式和非反应式 Spring 应用程序中用作过滤器,答案是您不能。您可以编写一个简单的类/bean,从不过,WebFilter 或 Filter 都可以。
【讨论】:
我想使用 Spring boot + netty,但我不想在 REST 控制器中使用函数式编程。 这就像说您想驾驶特斯拉但使用汽油为其提供动力。使用 Netty 时您需要编写非阻塞代码,否则您的服务器将只能支持每个 cpu 核心一次处理一个事务。 Spring Webflux 和 Spring MVC 根本不同,因为它们工作的环境完全不同。 是的,为什么我喜欢 vertx,我认为函数式编程不适合控制器,webflux 很有趣,但应该改进。谢谢以上是关于webflux spring boot 应用程序的过滤器,返回 ResponseEntity<?>的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Spring Boot 对 WebFlux 进行异常处理?
如何使用 Spring Boot Security 修复 Spring Boot Webflux 应用程序中的“名称为 requestMappingHandlerAdapter 的 bean 定义无效
一文带您搞清什么是 Spring Boot 2.x WebFlux