代码
@Configuration
public class ReturnConfig {
@RestControllerAdvice( {"aaa.controller", "bbb.controller"})
static class ResponseAdvice implements ResponseBodyAdvice<Object> {
private static final Object[] DEFAULT_PARAMETERS = {""};
private static final String[] UNSUPPORT = {
"aaa.controller.AController.method1",
"bbb.controller.BController.method2",
"ccc.controller.CController.method3"
};
@Override
public boolean supports(MethodParameter methodParameter,
Class<? extends HttpMessageConverter<?>> messageConverter) {
String methodName = "";
if (methodParameter != null) {
Method method = methodParameter.getMethod();
if (method != null) {
+ methodParameter.getMethod().getName();
methodName = method.getDeclaringClass().getName() + "." + methodParameter.getMethod().getName();
}
}
if (Arrays.asList(UNSUPPORT).stream().anyMatch(xStr -> xStr.equals(finalMethodName))) {
return false;
}
return true;
}
@Override
public Object beforeBodyWrite(Object body, MethodParameter methodParameter, MediaType mediaType,
Class<? extends HttpMessageConverter<?>> messageConverter, ServerHttpRequest serverHttpRequest,
ServerHttpResponse serverHttpResponse) {
if (body == null) {
return new CommonResult<Object>();
}
if (body instanceof CommonResult) {
return body;
}
if (body instanceof String) {
return JSON.toJSONString(new CommonResult<>(body));
}
return new CommonResult<Object>(body);
}
}
}