package com.app.mvc.common; import com.app.mvc.acl.util.RequestHolder; import lombok.extern.slf4j.Slf4j; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Created by Gaven8 on 16/7/12. */ @Slf4j public class HttpInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // 正常返回时, 显式回收threadLocal里的信息 removeThreadLocalInfo(); } @Override public void afterCompletion( HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // 出异常时, 显式回收threadLocal里的信息 removeThreadLocalInfo(); } private void removeThreadLocalInfo() { RequestHolder.remove(); } }