当前位置: 首页 > 知识库问答 >
问题:

从Spring Web Reactive Framework中的Flux检索Java.Util.List

左丘智渊
2023-03-14

我有一个endpoint,它应该使用期望Java.Util.List.

我使用Mongodb获取数据,但Mongodb返回一个Flux myList。

如何“给”ExcelUtility类列表myList来生成一个工作簿类,我可以在ResponseEntity中返回该类?

到目前为止,我有这个代码:

final Workbook myWorkBook = ExcelUtils                               
.pojo2xlsx(this.myMongoRepository.findAll()
.toStream().collect(Collectors.toList()), 
 MyType.class);

方法 myMongoRepository.findAll 返回一个 Flux

我想问题归结为我需要“阻止”流以获取列表,这样我的自定义Excel服务可以获取常规列表。我可以在测试代码中这样做,但当在Web反应框架中运行时,似乎不允许阻塞。

共有1个答案

苏昊英
2023-03-14

假设您从您想要的反应式上下文中调用它

Mono<Workbook> wb = s.collectList().map(l -> ExcelUtils.pojo2xlsx(l));

在这种情况下,您不想自己启动工作或在反应式调度程序管理的线程中造成阻塞。您只需将这个新的Mono返回给框架,让它决定何时以及如何安排工作。

但是,如果您从需要返回工作簿的普通方法调用它,那么您别无选择,只能阻塞,但这种同步方法的期望是您将开始工作并阻塞,直到它完成。

 类似资料:
  • 我正在用python开发一个二叉查找树。但是我的检索方法并不像我希望的那样工作。只有当我想检索根节点时,它才返回正确的值,对于所有其他节点,它都不返回任何值。 下面是我的节点类的代码: 我的二叉树代码: 所以Bintree中的最后一个方法为除Root之外的所有值返回Not,但它应该返回节点的值。 填充树:

  • 问题内容: 是否可以通过使用列的索引来获取列名?我浏览了API文档,但找不到任何东西。 问题答案: 你可以从元数据中获取此信息。参见 例如 你可以从那里获取列名称。如果你这样做 然后也会为你获取检索到的标签名称。

  • 问题内容: 我希望能够在textarea(HTML)中编写多行文本,并在python中检索此文本以使用Flask进行处理。另外,我希望能够以表格形式编写多行文本。我对使用JS毫无头绪,因此对我没有帮助。我该怎么做呢? 问题答案: 渲染具有表单和文本区域的模板。用于将表单指向将处理数据的视图。从访问数据。

  • 本文向大家介绍从SAP ABAP中的表中检索数据,包括了从SAP ABAP中的表中检索数据的使用技巧和注意事项,需要的朋友参考一下 通常,在ABAP中,您使用OpenSql语句来检索数据。OpenSql语句类似于普通的SQL语句。 如果需要在远程系统上使用功能模块,则需要使用诸如RFC_READ_TABLE之类的远程功能调用。它也使您可以查询远程呼叫中的数据。

  • 我正在运行spark批处理作业,并使用,因为我需要在每个组件中处理许多spark sql功能。在父组件中初始化,并作为传递给子组件。 在我的一个子组件中,我想在我的中再添加两个配置。因此,我需要从中检索,停止它并用附加配置重新创建。要做到这一点,我如何从Spark会话检索SparkContext?

  • 我正在尝试使用MapStruct映射两个对象。我已经搜索了一段时间,但没有找到任何东西,尽管我是编程新手,所以我相信这比我现在做的要容易。 下面是一些精简的代码(请注意,真正的代码更复杂,arraylist中的子对象与目标对象子变量的类型不同): 源对象 可以通过 目标对象 细节主题 制图器 如果我将DetailsObject直接放在SourceObject中,这将正常工作,但是当我试图从列表中获