BaseResponseAdvice.java 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package com.fdkankan.web.response;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.fdkankan.web.annotation.NotResponseAdvice;
  5. import lombok.extern.slf4j.Slf4j;
  6. import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
  7. import org.springframework.core.MethodParameter;
  8. import org.springframework.http.MediaType;
  9. import org.springframework.http.converter.HttpMessageConverter;
  10. import org.springframework.http.server.ServerHttpRequest;
  11. import org.springframework.http.server.ServerHttpResponse;
  12. import org.springframework.web.bind.annotation.RestControllerAdvice;
  13. import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
  14. import java.util.Objects;
  15. @ConditionalOnMissingBean(name = "customResponseAdvice")
  16. @RestControllerAdvice
  17. @Slf4j
  18. public class BaseResponseAdvice implements ResponseBodyAdvice<Object> {
  19. @Override
  20. public boolean supports(MethodParameter methodParameter, Class<? extends HttpMessageConverter<?>> aClass) {
  21. NotResponseAdvice methodAnnotation = methodParameter.getMethodAnnotation(NotResponseAdvice.class);
  22. if(Objects.nonNull(methodAnnotation)){
  23. return false;
  24. }
  25. return true;
  26. }
  27. @Override
  28. public Object beforeBodyWrite(Object body, MethodParameter methodParameter,
  29. MediaType mediaType, Class<? extends HttpMessageConverter<?>> aClass,
  30. ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
  31. // if(serverHttpRequest.getURI().getPath().contains("feign")){
  32. // return body;
  33. // }
  34. // log.info("响应拦截成功。。。");
  35. // List<String> strings = serverHttpRequest.getHeaders().get("Accept-Language");
  36. // System.out.println(strings.get(0));
  37. //admin监控请求,直接返回
  38. if(serverHttpRequest.getURI().getPath().contains("actuator")){
  39. return body;
  40. }
  41. if(body instanceof String){
  42. return JSONObject.toJSONString(ResultData.ok(body));
  43. }
  44. if (body instanceof ResultData) {
  45. return body;
  46. } else {
  47. return ResultData.ok(body);
  48. }
  49. }
  50. }