@ControllerAdvice如何实现@RestControllerAdvice的异同

2023-10-11 09:37:21 浏览数 (1)

相同点
  1. 作用范围:@ControllerAdvice@RestControllerAdvice 注解都用于全局异常处理和统一处理响应,可以应用于整个应用程序的控制器。
  2. 异常处理:它们都可以捕获和处理应用程序中发生的异常,并提供自定义的异常处理逻辑。
  3. 统一响应处理:它们都可以在控制器方法返回结果时进行统一的响应处理,例如添加全局的响应头、修改响应状态码等。
不同点
  1. 注解类型:@ControllerAdvice 注解的类可以返回视图或模型数据,适用于传统的MVC应用程序。而 @RestControllerAdvice 注解的类将默认返回 JSON 格式的响应,适用于基于RESTful风格的API应用程序。
  2. 响应格式:@ControllerAdvice 注解的类可以返回视图,可以使用 ModelAndViewString 类型的返回值,可以进行页面跳转。而 @RestControllerAdvice 注解的类会将方法返回的对象序列化为 JSON 格式作为响应。
@ControllerAdvice如何实现@RestControllerAdvice相同的功能

在方法或类上添加@Response注解即可。

综上所述,@ControllerAdvice@RestControllerAdvice 在异常处理和统一响应处理方面的功能类似,只是注解的使用场景和响应格式有所不同。如果你的应用程序是基于MVC架构的传统应用,可以使用 @ControllerAdvice 注解;如果你的应用程序是基于RESTful风格的API应用,可以使用 @RestControllerAdvice 注解。

0 人点赞