Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaSpringMVC中以文件的形式提供大量数据,因为它';正在创建什么?_Java_Spring_Performance_Model View Controller_Stack Overflow - Fatal编程技术网

如何在JavaSpringMVC中以文件的形式提供大量数据,因为它';正在创建什么?

如何在JavaSpringMVC中以文件的形式提供大量数据,因为它';正在创建什么?,java,spring,performance,model-view-controller,stack-overflow,Java,Spring,Performance,Model View Controller,Stack Overflow,我的生产服务器每个区块有数百个用户,我意识到导出数据可能会耗尽内存,并毁掉多个用户的应用程序 我们谈论的是由单个用户导出的数百万数据 有没有一种方法可以创建CSV文件并在生成时将其流式传输到前端,从而尽可能少地使用内存 使前端请求成批处理并在前端生成CSV文件不是一个选项,此调用将用于其他平台,我正在尝试使其尽可能干净。如果您查看on、section、subsection,您将发现许多返回流数据的方法,例如 void-如果具有void返回类型(或null返回值)的方法还具有ServletRes

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

我们谈论的是由单个用户导出的数百万数据

有没有一种方法可以创建CSV文件并在生成时将其流式传输到前端,从而尽可能少地使用内存

使前端请求成批处理并在前端生成CSV文件不是一个选项,此调用将用于其他平台,我正在尝试使其尽可能干净。

如果您查看on、section、subsection,您将发现许多返回流数据的方法,例如

  • void
    -如果具有
    void
    返回类型(或
    null
    返回值)的方法还具有
    ServletResponse
    OutputStream
    参数或
    @ResponseStatus
    注释,则认为该方法已完全处理了响应

  • ResponseBodyEmitter
    -异步发出一个对象流,用
    HttpMessageConverter
    写入响应;还作为
    响应的主体提供支持。见和

这意味着你可以做到:

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

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


我欠你一条命。