首页 > 解决方案 > SpringBoot Rest Service 对文件下载的异常处理

问题描述

目前我正在构建一个 RESTful SpringBoot 服务,它的功能是文件下载。

请让我知道是否有办法处理异常并通知客户端例如:FileNotFound 或 IOExceptions。

常规的 ExceptionMappers 不起作用。示例代码:

@GET
@RequestMapping("/fileDownload")
public FileSystemResource fileDownload(HttpServletResponse response) {
response.setContentType("application/octet-stream)
response.setHeader("Content-Disposition","attachment;filename=downloadZip");
enter code here
return new FileSystemResource(file);

标签: springspring-bootspring-restcontroller

解决方案


您可以使用 @RestControllerAdvice ,它是 spring 的全局异常处理程序。它应该是一个单独的类,其中定义了异常列表以及使用 @ExceptionHandler 注释处理它们的方式您还可以设置将扫描控制器的包 @ControllerAdvice(basePackages = “your.controller.package”) 如果你不'不定义 basePackages 然后将扫描类路径中的所有 @Controller 如果您想在 @Controller 或 @RestController 类中处理异常,您可以在方法上定义 @ExceptionHandler 它也可以工作,但异常只会在同一个控制器中处理,例如,如果您将在一个控制器中定义 @ExceptionHandler ,它将处理它。但是,如果您将在另一个控制器中抛出相同的异常,它将不会处理它。


推荐阅读