通过拦截器只能获取到controller下的
restcontroller不能通过拦截器实现
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.http.server.ServletServerHttpRequest;
import org.springframework.http.server.ServletServerHttpResponse;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@ControllerAdvice
public class ResponseBodyTest implements ResponseBodyAdvice<R> {
private static final Logger logger = LoggerFactory.getLogger(ResponseBodyTest.class);
@Override
public boolean supports(MethodParameter methodParameter, Class<? extends HttpMessageConverter<?>> aClass) {
return true;
}
@Override
public R beforeBodyWrite(R restResult, MethodParameter methodParameter,
MediaType mediaType,
Class<? extends HttpMessageConverter<?>> aClass,
ServerHttpRequest serverHttpRequest,
ServerHttpResponse serverHttpResponse) {
HttpServletRequest request = ((ServletServerHttpRequest) serverHttpRequest).getServletRequest();
HttpServletResponse response = ((ServletServerHttpResponse) serverHttpResponse).getServletResponse();
logger.info("____________________________________________________________");
logger.info(methodParameter.getDeclaringClass().getName());
if ((Boolean) restResult.get("success")){
logger.info(methodParameter.getMethod().getName()+"方法返回值:"+restResult.get("msg"));
}else {
logger.error(methodParameter.getMethod().getName()+"方法返回值:"+restResult.get("msg"));
}
logger.info("------------------------------------------------------------");
restResult.put("msg","返回信息")
return restResult;
}
}
响应类
package com.molomessage.message.sys.utils;
import java.util.HashMap;
import java.util.Map;
public class R extends HashMap<String, Object> {
private static final long serialVersionUID = 1L;
public R() {
put("success",true);
put("code", 0);
put("msg","操作成功");
}
public static R error() {
return error(500, "未知异常,请联系管理员");
}
public static R error(String msg) {
return error(500, msg);
}
public static R error(int code, String msg) {
R r = new R();
r.put("code", code);
r.put("msg", msg);
r.put("success",false);
return r;
}
public static R ok(String msg, Object obj) {
R r = new R();
r.put("success",true);
r.put("msg", msg);
r.put("data", obj);
return r;
}
public static R ok(String msg) {
R r = new R();
r.put("success",true);
r.put("msg", msg);
return r;
}
public static R ok(Map<String, Object> map) {
R r = new R();
r.putAll(map);
return r;
}
public static R ok() {
return new R();
}
public R put(String key, Object value) {
super.put(key, value);
return this;
}
}