springboot拦截器配置后访问swagger出错

实现ResponseBodyAdvice后需要放行
@ControllerAdvice
public class MyResponseBodyAdvice implements ResponseBodyAdvice<Object> {

    /**
     * @param methodParameter         :handler接口参数。
     * @param aClass:handler接口所在的控制器类 返回值:true:放行ResponseBodyAdvice增强处理,否则不执行。
     *                                supports  —— 判断是否要执行beforeBodyWrite方法,true为执行,false不执行  ——
     *                                通过supports方法,我们可以选择哪些类或哪些方法要对response进行处理,其余的则不处理
     */
    @Override
    public boolean supports(MethodParameter methodParameter, Class aClass) {
        //如果是swagger就放行,不执行beforeBodyWrite
        boolean springfox = methodParameter.getDeclaringClass().getName().contains("springfox");
        return !springfox;
    }
}
posted @ 2022-03-30 10:51  依笑  阅读(351)  评论(0)    收藏  举报