本文共 859 字,大约阅读时间需要 2 分钟。
作用:对本次请求的controller的返回值进行处理,然后返回自定义的返回值
用法,需要满足两个条件
1.创建一个类A,implements ResponseBodyAdvice接口 2.在类A上加注解@ControllerAdvice,不能是@Component等其他注入注解@ControllerAdvicepublic class ValidException implements ResponseBodyAdvice{ @Override public boolean supports(MethodParameter returnType, Class converterType) { return true; } //1.参数body就是原来controller的返回值(也就是本次请求调用的那个controller) //2.返回值Object是本次请求实际返回去的值 //所以此处我们可以在1与2之间做一些事情,修改原controller的返回值 //下面这个事例表示了:当前端传递的数据被@Validated卡住的时候, //会返回给前端“有未通过校验的数据!”,否则,程序正常执行controller @Override public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) { System.out.println(body); System.out.println(returnType); if(body.getClass()==LinkedHashMap.class) return "有未通过校验的数据!"; return body; }}
转载地址:http://uxhws.baihongyu.com/