问题标签 [webflux]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-boot - 在 Spring WebFlux Rest API 项目中使用 @ControllerAdvice
我想知道在 WebFlux 项目中使用 @ControllerAdvice 或实现扩展 DefaultErrorAttributes 的自定义类是否安全。还是两者都实施?
喜欢:
- 使用 @ControllerAdvice 注释的自定义类,用于处理选择处理程序后发生的异常。
- 扩展 DefaultErrorAttributes 以处理在选择处理程序之前发生的异常的自定义类。
提前致谢。
spring - Spring webflux oauth2 资源服务器自动配置身份验证转换器
有人知道为什么我需要下面的代码线才能让它工作吗?
我认为它应该通过配置 Bean 自动应用?
.jwtAuthenticationConverter(reactiveJwtAuthenticationConverter()) //<-- 为什么我需要这条线???
spring - Spring Cloud GlobalFilter:失败时重新发送修改的请求
我们使用带有 GlobalFilter 的 Spring Cloud Gateway 来处理对请求的令牌注入。这是过滤器的代码:
-tokenService.getToken()
方法从缓存中返回一个令牌,如果缓存中不存在,则从后端返回一个新令牌。但是可能会导致令牌在后端失效。如果再次使用令牌发出请求,后端会以 401 响应。在这种情况下,我们要拦截响应,使缓存无效,从后端请求新令牌(之后再次缓存)并重新发送请求使用新令牌。此外,还设置了一个标头,指示已重试请求以避免无限循环。这应该对客户透明地发生。
到目前为止我已经尝试过的:
但是我在后端日志中看不到第二个请求。
如何将修改后的请求再次发送到后端?
reactive-programming - 如何链接来自不同服务的响应,以便在 WebFlux 中使用“那些响应”创建 Flux 响应?
关于问题的语境化:
我正在尝试链接来自多个服务的数据,以便聚合/合并它们的响应;
我的目标是使用从“合并响应”创建的对象列表创建最终通量。
合并基于2个服务(userService + postService)
- 以下是上述情况的代码:
代码:
问题:
- 如何完成“userAllDto.setPosts”,
- 通过获取“PostAllDto”对象创建一个列表,
- 并将此列表插入“userAllDto.setPosts”?
- 通过获取“PostAllDto”对象创建一个列表,
当前有问题的 JsonResponse(邮递员):
更新:
找到解决方案
解决方案的 JsonResponse(邮递员):
非常感谢您的帮助
spring - 如何使用 Spring WebClient 顺序进行多次调用?
我阅读了主题 如何使用 Spring WebClient 同时进行多个调用?,但我的情况有点不同。我正在使用 webclient 调用 2 个不同的外部服务,比如说从方法 Mono < Void > A() ,然后是 Mono < Void > B ()。我的目标是从 A() 中提取数据,然后将其传递给 B()。有没有正确的方法可以避免:
- 异步调用(导致非法 arg 异常,因为 B 在 A() 完成之前请求 args);
- 阻塞调用,导致系统反应。
有没有一种标准的方法来实现它?
java - 成功和错误时记录响应时间 - Webflux(即使出现错误也会调用 doOnSuccess)
我编写了这个过滤器来测量 API 的响应时间。当我收到错误时触发 onSuccess。有什么方法可以分别登录成功和错误以更好地记录。
spring-boot - SpringBoot - WebFlux 获取 ClassCastException 的通用函数
我正在尝试编写一个通用函数来执行一些 Webflux 操作,但我遇到了一个我无法弄清楚的类转换异常
此代码以其非通用形式正常工作。但是当我用这样的东西调用这个泛型方法时
我得到一个例外:
我正在运行 SpringBoot 2.4.5 版,所以我认为这不适用:https ://github.com/spring-projects/spring-framework/issues/20574
只是为了更多的上下文,在上面的示例中,ViewModel(通用类型<V>
)是服务返回其数据的格式。然后我只提取我需要的部分,在这种情况下是一个字符串(通用类型<U>
)传入的 lambda 函数从响应中获取相关字符串。但由于某种原因,Mono 没有正确映射到 ViewModel。如果我取出 map() 并返回 ViewModel,它似乎可以工作。
同样,如果我以非通用方式执行此操作,则效果很好。我可以执行 map() 步骤并正确返回一个字符串
更新
只是想明确一点,这适用于像这样的非通用版本:
它被称为这种方式
它正确返回一个字符串,这正是我想要的通用版本
spring - 如何组装反应功能模块?
我是 webflux 初学者。基本的算子我都学过了,但是怎么用却很难应用。假设有一个响应 Flux 的函数,我想给响应一些具有 List 作为成员变量的对象。我应该怎么办?
结果.java
服务.java
路由器.java
spring-webflux - 在 Spring WebFlux 中,如何链接来自多个服务/存储库的方法,以便“删除”多个 DB-Collections 中的元素?
1)关于问题的语境化:
我正在尝试使用 03 个不同的服务/存储库(userService + postService + userRepo)在 03 个不同的 DB-Collections(Reactive MongoDB)中“删除”项目;
我的目标是使用相同的链接代码同时删除一个对象(在每个集合中);
以下是上述情况的代码:
1.1) 代码:
当前工作状态:不工作;
当前行为:不执行任何删除,无论是 delete-userService、delete-postService 还是 delete-userRepo。
2)问题:
- 如何删除不同 DB-Collections 中的不同元素,
- 通过仅使用一个使用三个“删除方法”的“链式删除方法”
- 三种不同的服务/repo(userService + postService + userRepo?
- 通过仅使用一个使用三个“删除方法”的“链式删除方法”
3)更新:
找到解决方案
非常感谢您的帮助
spring - Spring WebClient 编码 + 字符不正确
我正在尝试在查询参数中使用“+”来实现 GET 调用。
我正在做的正是Spring 文档中的内容
我正在使用 Spring 默认的 WebClient.Builder
我的代码是:
输入:一些+@mail
预期行为:GET /api/v0?email=some%2B%40mail
实际行为:GET /api/v0?email=some%20%40mail
'+' 字符用 %20 而不是 %2B 编码
我也尝试了其他几个选项,但没有一个能够提供所需的结果。