RestControllerAdvice和ControllerAdvice的区别
时间: 2023-10-31 07:48:49 浏览: 332
RestControllerAdvice是专门用于RESTful风格的控制器的异常处理类的注解,而ControllerAdvice是用于普通控制器的异常处理类的注解。RestControllerAdvice处理的异常是返回json格式的数据,而ControllerAdvice处理的异常是返回视图或者重定向。
相关问题
RestControllerAdvice和ControllerAdvice
@RestControllerAdvice和@ControllerAdvice是Spring框架中用于对Controller进行增强的注解。其中,@RestControllerAdvice注解等同于@ControllerAdvice和@ResponseBody注解的结合。
@ControllerAdvice主要用于解决多个Controller中的共性问题,如处理全局异常、处理全局数据、参数转换等。通过使用@ControllerAdvice注解,可以集中处理Controller中的共性问题,提高代码的复用性和可维护性。
@RestControllerAdvice注解除了具有@ControllerAdvice的功能外,还会将返回值自动转换为JSON格式,方便在RESTful API开发中返回数据。
@RestControllerAdvice 和ControllerAdvice 的区别
@RestControllerAdvice 和 @ControllerAdvice 都是用来处理全局异常的注解,二者的区别在于它们的返回值和使用场景略有不同。
@ControllerAdvice 注解的作用是用来处理 Controller 层抛出的异常,它可以定义一个全局的异常处理器,用于处理 Controller 层抛出的异常。@ControllerAdvice 注解可以配合 @ExceptionHandler 注解来定义异常处理方法,当 Controller 层抛出异常时,会自动调用对应的异常处理方法。
@RestControllerAdvice 注解的作用和 @ControllerAdvice 相似,不同的是 @RestControllerAdvice 注解返回的是 JSON 格式的数据,适用于前后端分离的项目。在使用 @RestControllerAdvice 注解时,需要在异常处理方法上添加 @ResponseBody 注解,以便正确地返回 JSON 格式的数据。
综上所述,@ControllerAdvice 注解适用于传统的 MVC 项目,而 @RestControllerAdvice 注解适用于前后端分离的 RESTful 项目。
阅读全文