最开始学习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>

本文介绍了SpringMVC中的@ControllerAdvice注解,用于实现全局异常处理、全局数据绑定和全局数据预处理。通过自定义异常类和配置,可以有效地简化开发工作。详细讲解了如何进行异常处理、设置全局数据以及解决同名属性的区分问题,并提供了源码地址供参考。
最低0.47元/天 解锁文章
1446

被折叠的 条评论
为什么被折叠?



