ResponseBodyAdvice是对请求响应后对结果的处理
@ControllerAdvice
public class TestResponseBodyAdvice implements ResponseBodyAdvice {
private static Logger logger = LoggerFactory.getLogger(TestResponseBodyAdvice.class);
@Override
public boolean supports(MethodParameter methodParameter, Class aClass) {
return true;
}
@Override
public Object beforeBodyWrite(Object o, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
logger.info("BEGIN====================================================================================");
logger.info(JSON.toJSONString(o));
JSONObject jsonObject = (JSONObject) JSON.toJSON(o);
List<AfaCasUser> users = new ArrayList<>();
AfaCasUser u = new AfaCasUser();
u.setUserCode("111");
users.add(u);
u = new AfaCasUser();
u.setUserCode("222");
users.add(u);
jsonObject.put("mask", users);
logger.info(jsonObject.toJSONString());
logger.info("END====================================================================================");
return JSON.parse(jsonObject.toJSONString());
}
}
就算原来的返回值类型没有mask
这个字段,也能够将其加进去并返回给前端。不受返回值类型影响。