Spring中ResponseBodyAdvice具有什么功能呢?
下文笔者讲述Spring中ResponseBodyAdvice的功能简介说明,如下所示
ResponseBodyAdvice的功能
ResponseBodyAdvice是一个接口 其功能可以对@RestController(也就是@Controller+@ResponseBody)注解的处理器 的返回进行修改(增强) ResponseBodyAdvice其实是借助AOP实现的一次增强
ResponseBodyAdvice接口的示例
//此接口说明对添加
//@Controller的类
//一个通知(增强功能)
@ControllerAdvice()
public class MyResponseBodyAdvice implements ResponseBodyAdvice {
@Value("${test.cache.enable}")
private Boolean enable;
@Autowired
private redisTemplate<String, String> redisTemplate;
private static final ObjectMapper MAPPER = new ObjectMapper();
@Override
public boolean supports(MethodParameter returnType, Class converterType) {
// 开关处于开启状态 是get请求
//使用MethodParameter参数判断注解信息
//符合此Get请求才进行织入通知
return enable && returnType.hasMethodAnnotation(GetMapping.class)
}
/**
*@param body:原controller要返回的内容
*/
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType,
MediaType selectedContentType,
Class selectedConverterType,
ServerHttpRequest request, ServerHttpResponse response) {
if (null == body) {
return null;
}
//TODO
//对返回值的改造
return body;
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


