@RestControllerAdvice 注解
Advice 在 Spring 中的含义就是对 XX 功能增强,RestControllerAdvice(ControllerAdvice)就是对控制器增强。之所以使用 RestControllerAdvice,是因为我们对外提供的都是 Rest 接口(json)。
我们需要对 Controller 返回的内容做一些额外的工作,即功能增强,就需要利用到这个注解。另外,这个注解提供了 basePackages 属性可以指定对特定 package 中的 Controller 生效。
ResponseBodyAdvice 接口
ResponseBodyAdvice 的作用是在响应体返回之前做一些自定义的处理工作。通常,我们会实现 ResponseBodyAdvice 接口,并包装统一的响应返回。接口的详细定义可以阅读 Spring 官网的解释: Spring ResponseBodyAdvice
- supports 方法
supports 的返回值是 boolean 类型,用于指定哪些 Controller 方法需要处理。我们当前的代码实现是标注了 IgnoreResponseAdvice 注解的类或者方法,统一响应不会生效。代码解