需求分析
当我们操作系统时,会去自动去统计系统的操作日志
分析: 1.项目中关于增删改的操作有很多
2.如果对于每个功能接口方法都去修改,这是比较繁琐的,
解决:使用AOP解决(因为每个接口方法所实现记录日志的代码逻辑是一样的)
使用@Around环绕通知
1.方法返回值,是在原始方法执行后才能获取到的。
2. 方法的运行时长,需要原始方法运行之前记录开始时间,原始方法运行之后记录结束时间。通过 计算获得方法的执行耗时
要匹配业务接口当中所有的增删改的方法,而增删改方法在命名上没有共同的前缀或后缀。此时如果使用execution切入点表达式也可以,但是会比较繁琐。 当遇到增删改的方法名没有规律时,就可以使用 annotation切入点表达式
操作实现
第一步:
新建一个操作日志表
第二步:
可以封装一个与之相关的实体类
第三步:
在Mapper层写一条新增操作的sql
我们需要把获取到的数据新增到数据库中
第四步:
自定义注解@Log
在所有Controller层中的增删改方法上添加@Log注解
第五步:
定义一个切面类 完成记录操作日志的逻辑功能
通过get set方法来进行获取和修改操作人的各项信息,把他存储到数据库中,调用Mapper层的insert方法 把对象传进去
为了防止该切面方法出现异常导致错误,所以需要进行try catch
在切面方法上使用@Around注解 其属性为@ annotation使用自定义注解@Log的全路径
这样就可以实现系统操作日志的统计了,感兴趣的朋友可以去尝试一下