使用弹簧拦截器实现日志管理实例

  

使用HandlerInterceptor拦截器,可以拦截请求,实现通用的日志管理操作

  

<强>,一,添加拦截器类

  

在“src/main/java”代码文件夹的“org.xs.demo1”的包下新建“LogInterceptor.java”类:
  

        包org.xs.demo1;      进口java.text.SimpleDateFormat;      进口javax.servlet.http.HttpServletRequest;      进口javax.servlet.http.HttpServletResponse;      进口org.slf4j.Logger;      进口org.slf4j.LoggerFactory;      进口org.springframework.core.NamedThreadLocal;      进口org.springframework.web.servlet.HandlerInterceptor;      进口org.springframework.web.servlet.ModelAndView;/* *      *日志拦截器      * @author ThinkGem      */公共类LogInterceptor实现HandlerInterceptor {   私人最后日志记录器=LoggerFactory.getLogger (getClass () . getname ());      私有静态最终ThreadLocalstartTimeThreadLocal=new NamedThreadLocal (“ThreadLocal开始时间”);/* *      *预处理      */@Override      公共布尔preHandle (HttpServletRequest请求,HttpServletResponse响应对象处理程序){抛出异常            长beginTime=System.currentTimeMillis ();//开始时间      startTimeThreadLocal.set (beginTime);//线程绑定变量(该数据只有当前请求的线程可见)      log.info(“开始计时:{}”,新SimpleDateFormat (hh: mm: ss.SSS) .format (beginTime));            返回true;      }/* *      *返回处理      */@Override      公共空白postHandle (HttpServletRequest请求,HttpServletResponse响应对象处理程序,ModelAndView ModelAndView){抛出异常      如果(modelAndView !=null) {      log.info (“ViewName:”+ modelAndView.getViewName ());      }      }/* *      *后处理      */@Override      公共空间afterCompletion (HttpServletRequest请求,HttpServletResponse响应、对象处理程序异常交货){抛出异常//保存日志//LogUtils。saveLog(请求、处理程序前,null);//输出日志信息      log.info(“访问地址:“+ request.getRequestURI() +”,执行方式:“+ request.getMethod ());      长beginTime=startTimeThreadLocal.get ();//得到线程绑定的局部变量(开始时间)      长endTime=System.currentTimeMillis ();//结束时间      log.info(“计时结束:{}”,新SimpleDateFormat (hh: mm: ss.SSS) .format (endTime));      }   }      

<强>二、修改配置文件

  

修改spring-mvc.xml件,加入:

        & lt; !——拦截器配置——比;      & lt; mvc: interceptors>      & lt; mvc: interceptor>      & lt; mvc:=映射路径“/* *”/比;      & lt; bean类=" org.xs.demo1.LogInterceptor "/比;      & lt;/mvc: interceptor>      & lt;/mvc: interceptors>   之前      

<强>三、运行测试

  

访问“http://localhost: 8080/demo1/hello/用于”地址

  

使用弹簧拦截器实现日志管理实例

  

可以看到拦截器中输出的日志信息了

  

实例代码地址:spring-HandlerInterceptor_jb51。rar
  

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

使用弹簧拦截器实现日志管理实例