RestControllerAdvice和ControllerAdvice
时间: 2023-11-18 12:50:56 浏览: 86
@RestControllerAdvice和@ControllerAdvice是Spring框架中用于对Controller进行增强的注解。其中,@RestControllerAdvice注解等同于@ControllerAdvice和@ResponseBody注解的结合。
@ControllerAdvice主要用于解决多个Controller中的共性问题,如处理全局异常、处理全局数据、参数转换等。通过使用@ControllerAdvice注解,可以集中处理Controller中的共性问题,提高代码的复用性和可维护性。
@RestControllerAdvice注解除了具有@ControllerAdvice的功能外,还会将返回值自动转换为JSON格式,方便在RESTful API开发中返回数据。
相关问题
RestControllerAdvice和ControllerAdvice的区别
RestControllerAdvice是专门用于RESTful风格的控制器的异常处理类的注解,而ControllerAdvice是用于普通控制器的异常处理类的注解。RestControllerAdvice处理的异常是返回json格式的数据,而ControllerAdvice处理的异常是返回视图或者重定向。
@RestControllerAdvice和ControllerAdvice区别
@RestControllerAdvice 和 @ControllerAdvice 是 Spring 框架中用于处理异常的注解。
@ControllerAdvice 是一个注解,用于定义一个全局的异常处理器类。被该注解修饰的类可以使用 @ExceptionHandler、@InitBinder 和 @ModelAttribute 注解来处理在整个应用中抛出的异常、数据绑定问题和模型属性的初始化。该类中的方法可以捕获到被 @RequestMapping 注解的方法抛出的异常,并进行相应的处理。
@RestControllerAdvice 是 @ControllerAdvice 的一个变体。与 @ControllerAdvice 相比,@RestControllerAdvice 注解将类中所有方法的结果直接发送给客户端,而不是通过视图解析器进行渲染。通常情况下,如果应用程序返回 JSON 或 XML 响应,可以使用 @RestControllerAdvice 来处理异常。
因此,区别就在于 @ControllerAdvice 用于处理视图解析器相关的异常,而 @RestControllerAdvice 用于处理返回 JSON 或 XML 响应的异常。
阅读全文