问题标签 [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 - 使用 Thymeleaf 的 Spring Webflux 中的 Blockhound 异常
在我的 Spring Boot 应用程序中启用 Blockhound 进行生产时,每当我尝试处理从 thymeleaf 返回视图的请求时,blockhound 都会引发异常(可能是由于从磁盘读取模板文件时出现阻塞):
例外:
应用程序.java
pom.xml 依赖项
我还尝试了另一种配置:删除 spring boot thymeleaf 自动配置并自己声明 webflux 反应式 thymeleaf 视图解析器,但如果也不起作用:
pom.xml 的变化:
ViewConfiguration.java
我认为问题与 thymeleaf 有关,因为当请求不涉及任何 thymeleaf 模板(标准 REST API 调用)时,如果工作正常。
我在这里想念什么?
java - Webflux 将 Mono 的结果存储到会话变量
我的Spring Boot Webflux -application ( Netty ) 使用Thymeleaf -templates输出 HTML 。在一个处理程序方法中,我使用WebClient
外部 id-provider 进行身份验证。现在我想将生成的身份验证令牌存储在会话变量中,以便我可以在后续的 Controller/Handler 方法中重用它。如果我将令牌存储在模型变量中,Spring/Webflux 会解析Mono
渲染前并提供生成的令牌字符串以供视图(Thymeleaf 模板)使用。但我找不到将令牌存储在会话变量中的方法。WebSession 对我来说就足够了,因为我不会运行具有多个节点的应用程序。
我尝试过的代码(Kotlin):
java - 在 Spring Webflux 中注入中间件
我正在尝试处理项目/仓库中的所有横切关注点,例如异常、授权等,并注入多个单独且独立的 spring-webflux 项目,即通过构建可重用的微服务平台来处理横切关注点。
谁能建议如何做到这一点?
例如:- light4j处理所有横切关注点,因为中间件只需添加为插件。但它与 SpringWebflux 不兼容。即使使用 AspectJ,我们也不能对不同的项目使用相同的处理程序,除非它们在同一个父项目下。
我尝试使用 AspectJ 的加载时编织功能。我在不同的项目中定义了方面,并在当前项目(我想在其中使用)中添加了一个插件,但是当发生异常时,aspectJ部分没有被调用
下面是我当前项目的 pom.xml
下面是方面项目的 pom.xml
附加 gitHub 链接:-
spring - Spring WebFluxTest 禁用 AWS 自动配置
我正在使用@WebFluxTest
测试 WebFlux RestController。我知道有参数excludeAutoConfiguration
,因为我使用它来排除ReactiveSecurityAutoConfiguration
.
现在我添加了两个依赖项:
现在,由于此异常,我的测试无法加载上下文:
我如何告诉 spring 不要加载这个 AWS 客户端?
这是完整代码的片段:
java - 使用spring webflux第一次调用的结果进行多个异步调用
我需要进行异步调用并使用其中存在的一些值对同一服务进行多次调用。将这些调用的响应与第一个调用组合并返回。
例如,当我第一次调用时,我得到下面的 JSON,它有一个 id 列表。现在,我必须使用这些 id 对服务进行多次调用,并列出它们的响应,并通过将其附加到相同的 JSON 中将其发送到下游。
我试过使用 zipWhen 和
但结果列表始终为空或 null。我们怎样才能做到这一点?我在这里错过了什么吗?
Edit1:通过使用解决它Flux.fromIterable
。阅读更多关于它的内容,最终了解了它的用途并解决了它。下面的方法从列表中取出一项,并调用内部方法,该方法将调用多个 API:
内部方法:它调用第一个 API,将其结果传递给 zipWith 并使用此结果我们可以调用另一个 API,或者我们可以简单地将其与响应一起使用。
java - 使用 Spring Webflux 将 Flux 转换为树
我们最近开始将 Spring WebMVC 代码重构为 WebFlux,用 WebClient 替换 RestTemplate。
从外部 Web 服务器,我们收到一个对象(产品)的平面列表,每个对象都包含对父对象的引用:
我们现在将此产品列表转换为树状结构,由少数根产品(作为列表)和每个根产品下方分层结构中的许多子产品组成。
在之前的代码中,转换很容易完成,因为我们最终得到了完整的平面列表,我们从中创建了一个新的结果列表。
对于反应流,我很困惑如何将原始的 Flux of Products 转换为完全不同的结构。
webflux - 如何遍历列表
现在有一个Flux<List<Map<String, Object>>>
,我想将每个Map<String, Object>
插入数据库。
数据库操作(我用的不是r2dbc而是rxjava2-jdbc):</p>
我需要得到结果。
java - 如何在发送从 reactor kafka 主题消耗的前 100 条消息后有条件地发布额外的 SSE Web Flux 事件
我正在使用带有 spring webflux SSE 流的 reactor-kafka 库来使用来自 kafka 主题的数据。当来自主题的所有消息都被消耗时,我需要返回一个特殊的 ServerSentEvent,即最大主题偏移量等于从 0 偏移量订阅时消耗的当前偏移量。以便客户知道 kafka 主题中没有更多消息。
是否可以使用 Web Flux 实现这样的目标?即,如果我说在从任何有限的元素列表中消耗每 100 个元素并通过 SSE 流作为 ServerSentEvent 发送之后,这个 SSE 流应该再获得一个事件作为 SeverSentEvent 并带有注释“已使用”。
java - 如何在 SpringCloud Gateway 中使用 Reactor3 的 Context
我尝试使用上下文在 SpringCloud Gateway 的过滤器中设置 Reactor3 的一些值,但在控制器中,我无法获取上下文中的值。
实际上,我是 Reactor3 的新手。所以请给我一些提示或帮助,非常感谢!
当我尝试获取 Context 的值时,它会抛出异常“上下文为空”
spring-webflux - Spring Webflux 将 null 返回给控制器
每次我认为我了解 Webflux 和项目反应器时,我发现我不知道。所以我进行了一些 API 调用……我想先调用 1……使用该信息获取信息,以进行后续调用。
所以我这样做
现在,由于某种原因,我将带有此代码的空对象返回给我的控制器,并且我没有在 Json 中打印出该对象。
我怀疑这是因为我将 Mono.zip 嵌套在平面图中,并且没有正确返回结果。尽管我的端到端集成测试成功了,但我正在进行所有这些 API 调用。
现在我想我会从 Mono.zip 链中的 .map 函数返回该响应对象,然后将其返回给链中的 flatMap 调用。如果我像 doOnSuccess 一样将观察者放在链上并打印出响应对象字段,我会得到一个空指针......不知道我错过了什么
- 这是实现该目标的好模式吗?还是我应该尝试不同的路径?
- 为什么我不能让响应对象返回?