spring aop写日志

来源:互联网 发布:世界黑客编程大赛 编辑:程序博客网 时间:2024/05/22 13:45
一个思路:1、写个静态类,定义静态变量,把所有要用到的service(假设AOP拦截到service层)实现类都写成key,value的形式,如:Map modeMap=new HashMap();map.put("UserServiceImpl","用户管理")//用于记录类与模块的对应关系。2、写静态变量,把定义的方法与日志中记录的描述对应。methodMap.put("add_UserInfo",'添加用户信息');methodMap.put("update_UserInfo",'修改用户信息');3、写AOP切入点:@Resource(name = "baseDao")private BaseDao baseDao;@Pointcut("execution (* com.web.*.*.service.*.*(..))")// 切入点作用域private void anyMethod() {}// 声明一个切入点应用方法@SuppressWarnings("unchecked")@AfterReturning(pointcut = "anyMethod()", returning = "result")public void doAfterReturning(JoinPoint join, Object result) {    String classname = join.getTarget().getClass().getName();//获取当前的类名    String method = join.getSignature().getName();//方法名  //再在上述静态MAP里找模块名字和方法描述,略..  //下述session中获取当前用户信息,略..    HttpSession session = HttpRequester.getHttpSession();   //组装日志对象,调用baseDao的方法写日志,略.  }
0 0