springboot 拦截器

1、编写拦截器

  

package com.ne.scrm.org.interceptor;


import com.software.boot.common.ThreadContext;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import static com.ne.scrm.org.api.consts.MyConstants.DEALER_ID;
import static com.ne.scrm.org.api.consts.MyConstants.EMP_ID;

/**
 * @author Yunugi
 * @since 2020-12-21
 */
public class CommonDataHandlerInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
        ThreadContext.put(EMP_ID, request.getHeader(EMP_ID));
        ThreadContext.put(DEALER_ID, request.getHeader(DEALER_ID));
        return true;
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
        ThreadContext.remove(EMP_ID);
        ThreadContext.remove(DEALER_ID);
    }
}

  

2、注册

  

package com.ne.scrm.org.config;


import com.ne.scrm.org.interceptor.CommonDataHandlerInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.net.URLDecoder;


/**
 * Make use of MVC pattern to process args.
 * Called before calling HandlerAdapter.
 *
 * @author Yungui
 * @since 20201221
 */
@Configuration
@Slf4j
public class WebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(headerDataInterceptor()).addPathPatterns("/**");
    }

    @Bean
    public CommonDataHandlerInterceptor headerDataInterceptor() {
        return new CommonDataHandlerInterceptor();
    }

}

  

原文地址:https://www.cnblogs.com/irobotzz/p/14177153.html