使用@RestControllerAdvice和FastJsonViewResponseBodyAdvice有什么区别
时间: 2023-08-25 16:02:37 浏览: 40
@RestControllerAdvice和FastJsonViewResponseBodyAdvice都是用于处理Spring MVC的Controller返回值的拦截器,但是它们的作用略有不同。
@RestControllerAdvice是Spring4.3版本引入的新注解,用于统一处理Controller抛出的异常,同时也可以对Controller的返回值进行统一处理。它可以定义全局的异常处理器,将异常信息转化为统一的格式返回给客户端,从而提高系统的可维护性和可读性。
而FastJsonViewResponseBodyAdvice则是阿里巴巴 Fastjson 库提供的一个注解,用于控制 Spring MVC 返回的 JSON 格式数据的输出。它可以定义全局的JSON格式化处理器,将Spring MVC Controller返回的JSON格式数据进行自定义的处理和格式化输出。
因此,@RestControllerAdvice和FastJsonViewResponseBodyAdvice的区别在于作用范围不同,一个是异常处理和统一返回值的处理器,一个是JSON格式化处理器。
相关问题
@ControllerAdvice注解和@RestControllerAdvice注解有什么区别
@ControllerAdvice和@RestControllerAdvice是Spring框架中用于全局异常处理的注解。
@ControllerAdvice注解用于定义一个全局的异常处理器类,可以捕获应用程序中抛出的异常,并对这些异常做统一的处理。它可以定义多个方法,每个方法处理不同类型的异常,通过使用@ExceptionHandler注解来指定要处理的异常类型。
@RestControllerAdvice注解是@ControllerAdvice注解的一个扩展,它除了具有@ControllerAdvice的功能外,还将返回的结果直接以JSON格式返回给客户端。在实际应用中,如果我们的应用是基于RESTful风格的,推荐使用@RestControllerAdvice注解。
总结来说,@ControllerAdvice和@RestControllerAdvice的区别在于返回结果的方式不同,@ControllerAdvice返回的是视图,而@RestControllerAdvice返回的是JSON数据。
@RestControllerAdvice与@ControllerAdvice有什么区别?
@RestControllerAdvice和@ControllerAdvice是Spring框架中用于处理全局异常的注解,它们的区别如下:
1. @RestControllerAdvice:这是一个组合注解,结合了@RestController和@ControllerAdvice的功能。它用于定义全局异常处理器,并且可以将处理结果直接以JSON格式返回给客户端。通常用于构建RESTful风格的接口。
2. @ControllerAdvice:这是一个注解,用于定义全局异常处理器。它可以捕获应用程序中抛出的异常,并对这些异常进行统一的处理。通常用于构建传统的MVC应用程序。
总结来说,@RestControllerAdvice适用于构建RESTful风格的接口,将异常处理结果以JSON格式返回给客户端;而@ControllerAdvice适用于传统的MVC应用程序,可以对异常进行统一的处理。两者的功能类似,只是返回结果的格式不同。