当前,我正在构建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);
答案 0 :(得分:0)
您可以使用@RestControllerAdvice,它是spring的全局异常处理程序。 它应该是一个单独的类,用于定义异常列表以及使用@ExceptionHandler批注处理它们的方式 您也可以设置将要扫描控制器的软件包 @ControllerAdvice(basePackages =“ your.controller.package”) 如果您未定义basePackages,则所有@Controller 在classpath中将被扫描 如果要在@Controller或@RestController类中处理异常,则可以在方法上定义@ExceptionHandler,它也可以工作,但是异常只能在同一控制器中处理,例如,如果要在一个控制器中定义@ExceptionHandler,它将处理它 。 但是,如果在另一个控制器中抛出相同的异常,它将无法处理该异常。 因此,如果遇到这种情况,最好使用@ControllerAdvice或@RestControllerAdvice,它将全局处理异常。