最开始学习SpringMVC时,并没有注意到这个注解,其实它是一个非常有用得注解,顾名思义,它是一个增强的Controller,它主要有这三个方面的功能:
- 全局异常处理
- 全局数据绑定
- 全局数据预处理
能够巧妙的使用这个注解功能,可以简化开发者的许多工作,值得注意的是,它是SpringMVC中提供的中注解,所以在SpringBoot中可以直接使用,下面我们就它三个主要功能来进行分析。
一、全局异常处理
如果需要使用@ControllerAdvice
来实现对异常的处理,只需要自定义一个异常类并添加该注解即可,如下:
【MyCustomException.java】
package com.mango.fileupload;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import org.springframework.web.servlet.ModelAndView;
import java.io.IOException;
@ControllerAdvice
public class MyCustomException {
@ExceptionHandler(MaxUploadSizeExceededException.class)
public ModelAndView myException(MaxUploadSizeExceededException e) throws IOException {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("myerror");
modelAndView.addObject("error","上传文件超出大小限制!");
return modelAndView;
}
}
【myerror.html】
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>