spring - 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);
解决方案
您可以使用 @RestControllerAdvice ,它是 spring 的全局异常处理程序。它应该是一个单独的类,其中定义了异常列表以及使用 @ExceptionHandler 注释处理它们的方式您还可以设置将扫描控制器的包 @ControllerAdvice(basePackages = “your.controller.package”) 如果你不'不定义 basePackages 然后将扫描类路径中的所有 @Controller 如果您想在 @Controller 或 @RestController 类中处理异常,您可以在方法上定义 @ExceptionHandler 它也可以工作,但异常只会在同一个控制器中处理,例如,如果您将在一个控制器中定义 @ExceptionHandler ,它将处理它。但是,如果您将在另一个控制器中抛出相同的异常,它将不会处理它。
推荐阅读
- java - SwingUtilities3 类不导入到项目中
- sql - 查询数字后的点
- asp.net-web-api - 如何发布 .Net Core 的 Web API 并将结果转换为 .Zip 文件
- webforms - 自定义 Web 表单脚本生成
- here-api - 当备选方案为 2 时,呼叫仅返回 1 条路线
- python - 按两位数对行进行排序
- ios - 使用正则表达式或其他方法 Swift 在字符串中的模式中查找字符串模式
- scala - Play 应用的生产版本中的“未找到操作”
- javascript - 如何单击页面 JAVASCRIPT 中的特定文本
- c - 输入末尾的预期声明或语句(单链表)