Blog

基于springAOP注解实现日志功能

   最近准备开始新项目,在项目启动前,我们的架构师分配了个任务给我,利用spring的切面技术做一个日志管理的案例。要求很简单,就是需要记录:谁在什么时候对谁做了什么操作,同时在日志的描述中还要有修改前后内容的对比。话说两句话是挺简单的,但是对于对spring只有初学者水平的我还是有点难度的,于是各种百度,各种谷歌,各种想。终于在这篇http://kaowww153.iteye.com/blog/603891博客中得到启发,但是里面的内容写的还是不够完整,和我的需求也有些不一样。经过多次的修改和测试,终于成功通过。今天闲来无事,写个博文,以备下次需要做好笔记。话不多说,把过程写下: 1.首先创建一个自定义注解,如下: @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface RecordLog { } 2.写一个过滤方法,这个方法是实现MethodIntherceptor接口的invoke方法。 public class LogAroundInterceptor implements MethodInterceptor { @Override public Object invoke(MethodInvocation invocation) throws Throwable { return returnObject; } 3.在springapplicationContext.xml文件里需要对我们的切面和注解进行配置。 <bean id="common" class="com.cstp.jdbc.test.Common"> </bean> <aop:config> <aop:pointcut id="logPointCuts" expression="execution(* com.cstp.jdbc.test.*.*(..))" /> <aop:advisor pointcut-ref="logPointCuts" advice-ref="springMethodInterceptor" /> </aop:config> <bean id="springMethodInterceptor" class="com.cstp.custom.interfaces.LogAroundInterceptor"> </bean> </beans> 4.我的实体类common @RecordLog public void update(User user, User opeartor, HttpServletRequest request) { UserDao userDao = new UserDaoImpl(); userDao.updateUser(user); System.out.println("修改成功"); } 5.servlet测试 UserDao userDao = new UserDaoImpl(); BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml"); Common c = (Common) factory.getBean("common"); User user = new User(); user.setId(2); user.setName(""); user.setPassword("123456"); user.setAge(18); user.setSex(""); User opeartor = userDao.findAllUserById(3); User oldUser = userDao.findAllUserById(2); HttpSession session = request.getSession(); session.setAttribute("oldUser", oldUser); c.update(user, opeartor, request); 测试结果:成功获得我所需要的新旧对象,以及操作人,时间,描述等都可以在getSysLog()方法中获取,至于如何添加就简单啦,就不写上了。 6.使用方法很简单了:在需要添加日志的方法上加上我们的注解@RecordLog就可以了(就像我common类里的update方法一样)。

Words translated by CCJK

146,096,379

Request a call or contact us

  •  

    Call ccjk.support for professional assistance

  •  

    Click Here to leave us a message and be as detailed as possible.

We are Certified

Our Client Satisfaction

rating for previous quarte

4.00
  •  
    Inquiry Form

    Please take few minutes to fill
    inquiry form and get Free Quote

  •  
    Request a Call

    Click to receive Free Call, Our
    Representative will contact you

  •  
    Leave a Message

    Please leave us a message and
    be as detailed as possible

Over 95% of our clients recommend our language services to others


Copyright © CCJK Technologies Co., Ltd. 2000-2017. All rights reserved.
TOP