问题标签 [spring-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.

0 投票
1 回答
1136 浏览

spring-security-oauth2 - spring-cloud-starter-oauth2 和 spring-boot-starter-webflux 启动时没有服务器

我有一个简单的弹簧应用程序,它使用

我的其他依赖项是:

我创建了一个虚拟控制器:

当我启动应用程序时,出现奇怪的错误:

看来我和 spring-webmvc 和 webflux 有冲突。根据我所阅读的内容,我想成为反应式,而 webmvc 不能很好地与 spring 反应式配合使用,所以我排除了 spring-web-starter,但后来我......

使 spring oauth2 与 spring-webflux 一起工作需要什么?

有关信息,我对所有内容都使用快照。

提前致谢

0 投票
5 回答
12396 浏览

spring-boot - spring-boot-webflux 中未使用配置的 ObjectMapper

我在我的 objectmapperbuilder 配置中配置了 mixins,使用常规的 spring web 控制器,根据 mixins 输出的数据。但是,使用 webflux,具有返回 Flow 或 Mono 的方法的控制器将数据序列化,就像 objectmapper 是默认的一样。

如何让 webflux 强制使用 objectmapper 配置?

示例配置:

0 投票
4 回答
2839 浏览

ssl - 无法使用 Spring Data Reactive 和 Spring Boot 2.0 连接到 mongoDB

每次尝试使用 Spring Data Reactive 和 Spring Boot 2.0 连接到 MongoDB 时,都会出现以下错误。

错误消息告诉我使用 NettyStreamFactoryFactory 来支持 SSL。有没有人有任何关于如何做到这一点的例子?我要连接的数据库是 MongoDB Atlas,它严格要求 SSL 连接。

以下是我的其余代码:

下面是 pom.xml 文件

0 投票
1 回答
373 浏览

spring-boot - 是否可以将您自己的文本/事件流序列化器添加到 Spring Boot 2.0.0?

目前,文本/事件流的唯一序列化是通过 ServerSentEventHttpMessageWriter 完成的。是否可以提供您自己的编写器来更改数据序列化的方式(提供除 SSE 格式之外的不同格式)?

0 投票
2 回答
12315 浏览

spring-boot - 使用带有嵌入式 Tomcat 的 Spring Boot Weblfux

我正在尝试在新的 Spring Boot 应用程序中使用 WebFlux 反应类型。我在https://start.spring.io使用了 initializr并选择了 2.0.0-SNAPSHOT 版本。我添加了 web 响应式依赖,我所做的一切都很好。这是一个非常可靠的 POC,目标是如何利用这些类型来现代化我们的 API,为此,我们计划慢慢替换阻塞和/或同步进程的每个部分,并用非阻塞替代实现替换它.

我遇到的问题是,当我尝试将我的 POC 发展成更类似于我们在生产中提供的服务时,许多事情似乎都不起作用。现在我知道 webflux 还不是 GA,我不应该期待所有其他 Spring 项目的完全响应式支持。然而,我确实记得当 webflux 仍然被称为 web-reactive 时,你可以在 undertow/jetty/netty/tomcat/etc 上运行,但现在我使用的是 webflux 启动器,一切都默认为 netty,我没有看到文档调用了解如何将其更改为我们其他服务当前正在使用的嵌入式 tomcat。

是否仍然可以将 spring-boot-starter-webflux 与其他应用程序容器一起使用,或者我现在是否需要手动引导 webflux 才能使用 netty 以外的其他东西?

0 投票
4 回答
9526 浏览

spring-webflux - 将 Flux 的结果与 Mono 的结果相结合

我开始使用 Project reactor,而我很少挣扎的一个地方是如何将来自 Mono 的东西与 Flux 结合起来。这是我的用例:

现在我想要实现的是:

如何结合来自 UserFlux 的响应并将这些用户与该组相关联,例如 group.addUsers(userfromFlux)。

有人可以帮助如何组合来自 userFlux 和 groupMono 的结果。我想我使用像 Zip 这样的东西,但它会从源代码进行一对一的映射。就我而言,我需要进行 1 到 N 映射。在这里,我有一个组,但需要将多个用户添加到该组中。返回Mono<List<Users>然后将 zip 运算符与单声道一起使用并提供此处提到的组合器是一个好主意
public static <T1, T2, O> Flux<O> zip(Publisher<? extends T1> source1, Publisher<? extends T2> source2, final BiFunction<? super T1, ? super T2, ? extends O> combinator)吗?

0 投票
1 回答
3125 浏览

load-balancing - 服务器如何发送消息 SSE 在多个服务器实例环境中工作

我有一个关于如何使 SSE 在多个服务器环境中工作的问题。

在 UI 中,有两个步骤:

  1. UI 中的用户可以发布到 api 以更新数据

  2. 用户发布到 api 后,服务器正在向 UI 发送事件以更新 UI

在一个服务器环境中,这工作得非常好,完全没有问题。

但是在多服务器实例环境中,这是行不通的。例如,我有两个服务器实例,UI 订阅了服务器 1,那么服务器 1 记住了连接,但是数据更新是从服务器 2 来的,当数据发生变化时,服务器 2 中的 SSE 没有连接。那么在这个senario,服务器 2 如何将 SSE 发送到 UI?

为了让 SSE 在多个服务器环境中工作,我们是否需要采用任何保存方案来保存连接信息,以便任何服务器实例都能准确地将 SSE 发送到 UI?

让我再澄清一下:是的,服务 1 和服务 2 都位于负载均衡器之后,它们不必具有相同的 URL。UI 是纯前端应用程序,甚至可以是移动应用程序。所以,如果 UI 正在向 server1 的 LB 发送 eventSource 请求,那么只有这个实例可以使用这个连接将事件发送回 UI,对吗?但是如果我们有多个服务器 1 实例,这意味着除当前实例之外的任何服务器 1 实例都不能将事件发送回 UI。我相信这是 SSE 的限制,除非连接可以在所有实例之间共享。但是如何。

谢谢

0 投票
1 回答
1724 浏览

spring-data - spring-data-commons-2.0.0:没有找到类型 T 的属性删除!ReactiveCrud 存储库

问题通过扩展 ReactiveCrudRepository 尝试使用 spring web 响应式和 spring 数据。我收到以下错误

代码:

产品

产品存储库

pom.xml

Github:项目链接

请提出这里的问题以及如何解决它。

0 投票
2 回答
15668 浏览

java - 如何防止嵌入式netty服务器从spring-boot-starter-webflux启动?

我想使用 Springs 新的响应式webflux扩展在客户端和服务器应用程序之间建立通信。

对于依赖管理,我使用gradle。我在服务器上以及客户端上的 build.gradle 文件基本上是:

(需要注意的是 2.0.0.BUILD- SNAPSHOT是一个移动的目标,由于依赖关系内部的变化,手头的问题可能有一天会消失)

当我启动服务器端应用程序时,一切都启动良好,包括嵌入式 netty 服务器的启动。

但是当启动客户端应用程序时,也会启动一个 netty 服务器,导致“java.net.BindException:地址已在使用”,因为客户端 netty 服务器侦听与服务器端 netty 服务器相同的端口。

我的问题是:为什么netty首先在客户端启动,我该如何防止它?

根据 Spring-Boot 文档,Spring 尝试确定是否需要 Web 支持并相应地配置 Spring 应用程序上下文。

根据文档,这可以通过调用 setWebEnvironment(false) 来覆盖。我的客户端启动代码如下所示:

不幸的是,netty 仍在启动。我还注意到setWebEnvironment(false)被标记为已弃用。

任何有关如何防止 netty 启动但以其他方式保留所有 webflux 依赖项的帮助表示赞赏。

以下是自动配置报告的摘录:

0 投票
6 回答
36112 浏览

java - spring-webflux 中处理错误的正确方法是什么

我一直在使用 spring-webflux 进行一些研究,并且我想了解使用路由器功能处理错误的正确方法应该是什么。

我创建了一个小项目来测试几个场景,我喜欢获得有关它的反馈,看看其他人在做什么。

到目前为止,我所做的是。

给出以下路由功能:

我已经在我的处理程序上这样做了

他们我的错误处理程序做:

这是完整的示例回购:

https://github.com/LearningByExample/reactive-ms-example