SpringBoot2.x系列教程(四十)SpringBoot中@ControllerAdvice使用详解
2020-03-04 22:40
555 查看
@ControllerAdvice,是Spring3.2提供的新注解,顾名思义是对控制器(Controller)的增强。
通常情况下,该注解看用于以下三个场景:全局异常处理、全局数据绑定、全局数据预处理。
先看一下@ControllerAdvice注解的源码:
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface ControllerAdvice { @AliasFor("basePackages") String[] value() default {}; @AliasFor("value") String[] basePackages() default {}; Class<?>[] basePackageClasses() default {}; Class<?>[] assignableTypes() default {}; Class<? extends Annotation>[] annotations() default {}; }
通过源码可以看出@ControllerAdvice就是一个@Component。根据官方文档可以得知@ControllerAdvice可用于定义@ExceptionHandler,@InitBinder和@ModelAttribute方法,适用于所有使用@RequestMapping方法。
文档中所说的三个注解,恰好对应于我们所说的@ControllerAdvice所对应的三个应用场景。
全局异常处理
关于全局异常处理,其实在前面章节中我们已经涉及到,这里再统一讲解一下。下面以具体的实例来进行讲解。
结合@ExceptionHandler处理全局异常配置类:
@ControllerAdvice public class ExceptionConfig { @ResponseBody @Exc
相关文章推荐
- SpringBoot系列教程JPA之query使用姿势详解之基础篇
- Spring Boot2 系列教程(十二)@ControllerAdvice 的三种使用场景
- SpringBoot2.0系列教程(二)Sprignboot使用Druid连接池
- SpringBoot之Controller的使用详解
- SpringBoot2.0系列教程(十)Springboot框架通过freemarker自动生成service,serviceImpl,controller功能
- SpringBoot系列教程之Bean加载顺序之错误使用姿势辟谣
- Spring Boot教程(四十)使用Flyway来管理数据库版本
- 我爱Java系列之---【使用idea快速创建springboot项目教程】
- SpringBoot2.x系列教程(四十一)SpringBoot中通过SpringContextUtils工具类获取Bean
- Spring Boot系列教程四:配置文件详解properties
- springBoot系列教程03:redis的集成及使用
- Spring Boot系列教程之死信队列详解
- SpringBoot__SpringMVC 中 @ControllerAdvice、@ExceptionHandler()、@ModelAttribute()、@InitBinder()简单使用
- springboot 使用@ControllerAdvice注解全局处理系统异常
- SpringBoot系列教程JPA之新增记录使用姿势
- SpringBoot系列教程web篇之过滤器Filter使用指南
- SpringBoot 统一异常处理--- @ControllerAdvice 使用
- Spring Boot教程(三十八)使用MyBatis注解配置详解(1)
- SpringBoot2.x系列教程(四十五)Spring Boot集成WebSocket实现技术交流群功能
- SpringBoot2.x系列教程(四十二)SpringBoot中构建RESTful服务