java - 使用 spring 的 AbstractXlsxView 下载大文件
问题描述
我正在使用 spring 的 AbstractXlsxView 来下载一个大文件。下面是 AbstractXlsxView 实现和控制器方法的代码。
class ExcelView extends AbstractXlsxView {
@Override
protected void buildExcelDocument(Map<String, Object> map, Workbook workbook,
HttpServletRequest request, HttpServletResponse response) throws Exception {
//logic here...
}}
class ExportController {
@PostMapping("/report.xlsx")
public View downloadReport() throws SQLException {
ExcelView view = exportDataService.getReport();
return view;
}}
使用这种方法,我面临大文件(~1GB)的堆 outOfMemory错误。有什么办法可以修改这种方法以适应大文件(写入输出流而不是将所有内容都保存在内存中)?
解决方案
推荐阅读
- c - 如何在目标中添加子目录源?
- c++ - Rust vs C++:从函数返回对象
- ios - ReactJS 网站在 IOS 中默认打开为桌面版本,当请求桌面版本时更改为移动版本
- python - 根据像素颜色的变化定位坐标
- java - 如何在 Java 中使用正则表达式匹配有效的操作序列
- javascript - 使用动态样式jquery附加到现有的div
- ansible - 如何将shell输出设置为ansible中的变量
- vb.net - 将文本写入控制台缓冲区
- oauth-2.0 - 未经授权的错误 401 在 Angular 中获取贝宝的 OAUTH2 令牌
- css - 即使使用 !important 规则,容器类 css 声明也不起作用