ResponseBodyAdvice与RequestBodyAdvice

转载自:https://blog.csdn.net/ai_xiangjuan/article/details/79837712

ResponseBodyAdvice

主要作用是响应体写出之前做一些处理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Order(1)  
@ControllerAdvice(basePackages = "com.github")
public class MyResponseBodyAdvice implements ResponseBodyAdvice<Object> {

@Override
public boolean supports(MethodParameter methodParameter, Class<? extends HttpMessageConverter<?>> converterType) {
return methodParameter.getMethod().getReturnType().isAssignableFrom(User.class);
}

@Override
public Object beforeBodyWrite(
Object obj, MethodParameter methodParameter, MediaType mediaType,
Class<? extends HttpMessageConverter<?>> converterType,
ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {

User user = ((User)obj);
user.setName("---" + user.getName() + "---");
return user;
}
}

RequestBodyAdvice

请求增强。在读取请求body之前或者在body转换成对象之前可以做相应的增强。