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; } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。