崩溃原因是因为Spring是把所有数据都接收完再统一进行处理的,这样数据量大的话就会导致JVM内存不足,从而引发GC等各种问题。处理方式很简单,当数据流过来的时候就直接处理数据入库,不要等到数据都过来的时候再处理,亲测好用!
上代码!!!
<!-- 解决大量数据上传问题-->
<dependency>
<groupId>com.monitorjbl</groupId>
<artifactId>xlsx-streamer</artifactId>
<version>1.2.0</version>
</dependency>
public R demo(MultipartFile file) {
Workbook wk = StreamingReader.builder()
.rowCacheSize(100) //缓存到内存中的行数,默认是10
.bufferSize(4096) //读取资源时,缓存到内存的字节大小,默认是1024
.open(file.getInputStream()); //打开资源,必须,可以是InputStream或者是File,注意:只能打开XLSX格式的文件
}