spring boot--全局异常监听

摘要:
@RestControllerAdvice功能:@ControllerAdvise注释可以将控制器的全局配置放在同一位置。@ExceptionHandler用于指定异常处理方法。与@RestControllerAdvice一起使用时,它用于全局处理控制器中的异常。@InitBinder用于设置WebDataBinder并自动将前台请求参数绑定到模型。@ModelAttribute最初用于将键值对绑定到模型中。当与@ControllerAdvice一起使用时,全局@RequestMapping可以获得此处设置的键值对

前言

  在阅读这篇文章之前,你可能需要对spring boot 的拦截器和过滤器进行一些了解,这篇文章是我见过最好的spring boot拦截器(filter)和过滤器(interceptor)详解及使用场景

代码

  定义全局异常处理类

@RestControllerAdvice //此注解用于定义@ExceptionHandler,@InitBinder和@ModelAttribute方法
public class ErrorHandler {
    @ExceptionHandler(value = {Exception.class}) //ExceptionHandler注解,声明此方法为全局异常处理函数
    public Object exceptionHandler(HttpServletRequest request, Exception e) {
        return "我还是执行了吗?异常捕捉程序";
    }

}

描述

  @RestControllerAdvice 是什么

    @RestControllerAdvice是一个组合注解,由@ControllerAdvice@ResponseBody组成,而@ControllerAdvice继承了@Component,因此@RestControllerAdvice本质上是个Component,用于定义@ExceptionHandler,@InitBinder和@ModelAttribute方法,适用于所有使用@RequestMapping方法。
  

  @RestControllerAdvice的特点:

  1.     @ControllerAdvice注解可以将对于控制器的全局配置放在同一个位置。
  2.  @RestControllerAdvice注解的类的方法可以使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上。
  3.     @RestControllerAdvice注解将作用在所有注解了@RequestMapping的控制器的方法上。
  4.     @ExceptionHandler用于指定异常处理方法。当与@RestControllerAdvice配合使用时,用于全局处理控制器里的异常。
  5.     @InitBinder用来设置WebDataBinder,用于自动绑定前台请求参数到Model中。
  6.    @ModelAttribute本来作用是绑定键值对到Model中,当与@ControllerAdvice配合使用时,可以让全局的@RequestMapping都能获得在此处设置的键值对

免责声明:文章转载自《spring boot--全局异常监听》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySQL5.6 新特性之GTID关于parseInt进行进制的转换下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ZYNQ:使用SDK打包BOOT.BIN、烧录BOOT.BIN到QSPI-FLASH

打包程序为BOOT.BIN 注意,做好备份是一个好习惯。 Vivado Vivado 添加QSPI Flash的IP,重新编译; Launch SDK(推荐方法);或者用SDK指定一个workspace,根据hdf建立BSP。 SDK 新建fsbl-1 这个fsbl用于启动程序。 File - New - Application Project Proje...

Springboot 返回 jsp

1、配置pom.xml 1 <!--配置jsp jstl的支持--> 2 <dependency> 3 <groupId>javax.servlet</groupId> 4 <artifactId>jstl...

Ubuntu——grub rescue 主引导修复

长期使用windows 和 ubuntu 人双系统,很可能遇到沉重的一个系统,或以其他方式加盟分区,导致系统重新启动时 : GRUB loading error:unknow filesystem grub rescue> 转载请注明出处:http://blog.csdn.net/jscese/article/details/36865449 一....

玩转Spring Boot 自定义配置、导入XML配置与外部化配置

玩转Spring Boot 自定义配置、导入XML配置与外部化配置       在这里我会全面介绍在Spring Boot里面如何自定义配置,更改Spring Boot默认的配置,以及介绍各配置的优先级顺序。Spring Boot使用一个全局的配置文件application.properties,Spring Boot 支持使用YAML语言的配置文件,...

SpringBoot启动报错:Failed to introspect Class [org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration] from ClassLoader [sun.misc.Launcher$AppClassLoader@4e0e2f2a]

SpringBoot启动服务器失败,详细的报错日志如下:   java.lang.IllegalStateException: Failed to introspect Class [org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration] from C...

boot 项目启动报Cannot datermine embedded database driver class for database type NONE

部署boot项目时报Cannot datermine embedded database driver class for database type NONE数据库链接什么的也都没有问题,经过百度 因为spring boot只要你在pom中引入了mybatis-spring-boot-starter 他就会默认需要加载数据库相关的配置 你要是没有在配置文...