日常工作中,经常会遇到需要记录用户操作日志的地方,比如用户在几点几分点击了什么功能,入参是什么出参是什么。这些在排查问题的时候,可以快速的让我们了解到用户是怎么进行操作的。
知识点
Spring AOP,本次实践就是使用Spring AOP对方法进行动态代理,从而进行代码增强,无侵入记录用户行为日志。
AOP核心点:
连接点(Weaving):要增强的方法,比如登录方法,获取用户信息方法
切点(pointcut):织入点的集合
通知(Advice):具体要干的事,比如增加日志记录,打印入参和出参,方法执行时间
通知类型:
前置通知 Before:在连接点方法前调用
后置通知 After:在连接点方法后调用
返回通知 AfterReturning:在连接点方法正常返回时调用
环绕通知 Around:在连接点方法执行前和执行后调用
异常通知 AfterThrowing:在连接点方法发生异常时调用
切面:连接点,切点,通知的载体,我们使用的是Aspect实现的切面类
对AOP不清楚的可以查一些相关资料,本文主要是对功能的实现进行讲解。
引入依赖
<dependency>