gpt4 book ai didi

java - 如何在 Java Spring MVC 创建时将大量数据作为文件提供?

转载 作者:行者123 更新时间:2023-11-30 02:09:00 25 4
gpt4 key购买 nike

我的生产服务器每个 block 有数百个用户,我意识到导出数据可能会耗尽内存并破坏多个用户的应用程序。

我们正在谈论单个用户导出的数百万数据。

有没有办法创建 CSV 文件并将其在生成时流式传输到前端以使用尽可能少的内存?

进行前端请求批量并在前端生成 CSV 文件不是一个选项,此调用将用于其他平台,我正在努力使其对所有人来说尽可能干净。

最佳答案

如果你看Spring Framework DocumentationSpring Web MVC ,部分1.4.3. Handler Methods ,小节Return Values ,你会发现很多返回流数据的方法,例如

  • void - 具有 void 返回类型(或 null 返回值)的方法被视为已完全处理响应如果它还有 ServletResponseOutputStream 参数或 @ResponseStatus 注释。

  • ResponseBodyEmitter - 异步发出对象流,以使用 HttpMessageConverter 写入响应;还支持作为 ResponseEntity 的主体。请参阅Async RequestsHTTP Streaming .

这意味着你可以做到:

  • 同步:自己将原始响应写入处理程序方法中的 HTTP 响应流。当方法返回时响应完成。

  • 异步:在处理程序方法中准备流式传输(包括 HTTP header ),然后在另一个线程中执行实际流式传输。

关于java - 如何在 Java Spring MVC 创建时将大量数据作为文件提供?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50651833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com