HandlerInterceptor 拦截请求日志

440 阅读1分钟
public class LogInterceptor implements HandlerInterceptor {
    private final static Logger logger = LoggerFactory
            .getLogger(OperationLogInterceptor.class);
    /**
     * Handler Method 过滤
      该 可以获取到方法的信息
     * org.springframework.web.method.HandlerMethod
     */
    private static final String HANDLER_METHOD = "HandlerMethod";

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    // true 继续下去
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
       // 后置处理器 可以获取 ModelAndView
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
            if (HANDLER_METHOD.equals(handler.getClass().getSimpleName())) {
                //TODO 
                logger.info("。。。。");
            }
    }
}

最基本的:拦截所有的controller请求

配置生效

	<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/**"/>
			<bean class="package.xxx.OperationLogInterceptor"></bean>
		</mvc:interceptor>
	</mvc:interceptors>