springboot自定义拦截器

1、创建拦截类

@Configuration
public class InterceptorAdapterConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry interceptorRegistry) {
        InterceptorRegistration registry = interceptorRegistry.addInterceptor(new InterceptorConfigurer());

        registry.addPathPatterns("/**");
    }

}

2、创建具体拦截配置

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Map;

/**
 * 系统中的拦截器配置
 */

public class InterceptorConfigurer implements HandlerInterceptor {
    private Logger logger = LoggerFactory.getLogger(InterceptorConfigurer.class);

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
        try {
            // 这里面可以写自己想搞的业务
	   String token="";
	   String userId="";
   
            // 不做拦截的地址
            if (!checkRequestURI(request)) {
              
            }
            return true;
        } catch (Exception e) {
            throw new ApiException(e.getMessage(), e);
        }
    }

    public boolean checkRequestURI(HttpServletRequest request) {
        if (request.getRequestURI().equals("*****")) {
            return true;
        }
        return false;
    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o,
                           ModelAndView modelAndView) {
        // Do nothing because of X and Y.
    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse,
                                Object o, Exception e) {
        // Do nothing because of X and Y.
    }

}


posted @ 2022-07-21 11:08  道行太浅  阅读(755)  评论(0编辑  收藏  举报