package com.mzl.flower.base.interceptor; import com.google.common.collect.ImmutableList; import org.springframework.beans.factory.annotation.Autowired; 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.web.bind.annotation.ControllerAdvice; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; import java.util.List; @ControllerAdvice public class CodeDecorateInterceptor implements ResponseBodyAdvice { @Autowired private CodeDecorator codeDecorator; @Autowired private LocaleResolver localeResolver; @Override public boolean supports(MethodParameter methodParameter, Class> clazz) { String methodName = methodParameter.getMethod().getName(); List skipList = ImmutableList.of("api-docs"); return !skipList.contains(methodName); } @Override public Object beforeBodyWrite(Object object, MethodParameter methodParameter, MediaType mediaType, Class> clazz , ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) { return codeDecorator.decorate(object); } }