使用Spring MVC拦截器实现日志记录的方法

最近在研究Spring MVC拦截器,那么今天也算个学习笔记吧!有需要了解使用Spring MVC拦截器实现日志记录的朋友可参考。希望此文章对各位有所帮助。

1.  定义一个类实现HandlerInterceptor,比如: 

public class MyInterceptors implements HandlerInterceptor{ 
  /** 
   * 在渲染视图之后被调用; 
   * 可以用来释放资源 
   */  
  public void afterCompletion(HttpServletRequest arg0, 
      HttpServletResponse arg1, Object arg2, Exception arg3) 
      throws Exception { 
    // TODO Auto-generated method stub 
    System.out.println("MyInterceptors afterCompletion"); 
  } 
  /** 
   * 该方法在目标方法调用之后,渲染视图之前被调用; 
   * 可以对请求域中的属性或视图做出修改 
   * 
   */ 
  public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, 
      Object arg2, ModelAndView arg3) throws Exception { 
    // TODO Auto-generated method stub 
    System.out.println("MyInterceptors postHandle");     
  } 
 
  /** 
   * 可以考虑作权限,日志,事务等等 
   * 该方法在目标方法调用之前被调用; 
   * 若返回TURE,则继续调用后续的拦截器和目标方法 
   * 若返回FALSE,则不会调用后续的拦截器和目标方法 
   * 
   */ 
  public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, 
      Object arg2) throws Exception { 
    // TODO Auto-generated method stub 
    HandlerMethod handlerMethod = (HandlerMethod) arg2;  
    System.out.println("MyInterceptors preHandle 调用方法名:"+handlerMethod.getMethod().getName()); 
    /* 
      写一个日记类和Service,将需要的属性保存到数据库       
    */ 
 
    return true; 
  } 
 
} 

2.在Springmvc.xml中装配 

<!-- 装配拦截器 --> 
<mvc:interceptors> 
  <mvc:interceptor> 
  <mvc:mapping path="/*"/> 
    <bean class="com.datatub.springmvc.interceptors.MyInterceptors"></bean> 
  </mvc:interceptor> 
</mvc:interceptors> 

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