一、配置拦截路径设置
package com.yxdk.cbit.insurance.api.conf;
import com.yxdk.insurance.base.interceptor.CommonInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* @author Administrator
*/
@Configuration
public class InterceptorConf implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
/*
新建RequestEntity到RequestContext
*/
//new CommonInterceptor()具体配置拦截器,在其中配置拦截前中后执行的操作
registry.addInterceptor(new CommonInterceptor())
.addPathPatterns("/**")
.order(1);
// registry.addInterceptor(new PrintSlowReqToLogInterceptor())
// .addPathPatterns("/**")
// .order(2);
// registry.addInterceptor(new CORSInterceptor())
// .addPathPatterns("/**")
// .order(3);
// registry.addInterceptor(new SucceedReqLogInterceptor())
// .addPathPatterns("/**")
// .order(4);
//
// registry.addInterceptor(new SessionInterceptor())
// .addPathPatterns("/**")
// .order(5);
}
}
二、拦截器具体设置
package com.yxdk.insurance.base.interceptor;
import com.alibaba.fastjson.JSON;
import com.yxdk.insurance.base.entity.ResponseEntity;
import com.yxdk.insurance.base.utility.IPUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author Administrator
*/
public class CommonInterceptor implements HandlerInterceptor {
private static final Log logger = LogFactory.getLog(CommonInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws
Exception {
if (!"OPTIONS".equals(request.getMethod())) {
logger.info("[IP]" + IPUtil.getIp(request) + ":::" + "[Req]" + request.getRequestURI() + ":::" +
"[ReqParams]" + JSON.toJSONString(request.getParameterMap()));
}
RequestContext.setResponseEntity(new ResponseEntity());
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView
modelAndView) {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception
ex) throws Exception {
RequestContext.removeResponseEntityInTL();
}
}