基于Spring Aop的日志实现

AOP的概念理解:面向切面编程,自定义一个类作为通知类,定义切入点标明那些类的那些方法需要处理,什么时机处理

                        五种通知类型  before  after  afterReturning  afterThrowing round

aop的使用步骤xml+注解形式

    1 定义类作为通知类  @component 作为切面 @Aspect

    2 在xml中开启支持       aop:aspect-autoproxy   @EnableAspectAutoProxy

    3 切入点的配置  pointCut("* cn.hehe.*.*(..))")

     4 @Before   等通知

需求:在请求方法时候记录 信息

1. 操作的用户名

User security权限框架的对象 通过

扫描二维码关注公众号,回复: 2490906 查看本文章

2. 请求的动作类名

jointPoint.getTarget.getSimpleName();

3. 请求的方法名

接入点jointPoint.getSingature.getName();

4. 请求的url路径

动作类上面配置的mapping加上方法上面的mapping

需要获取执行的类对象 和执行的方法对象

 

方法对象的获取分为无参数和有参数

  

5. 传递的参数

Arrays.toString(参数的数组);

6. 请求的ip地址

 

7. 访问的时间

新建时间保存

8. 执行花费的时间

当前时间 减去之前保存的对象中的访问时间

9. 执行结果的状态

根据执行后的通知类型 设置SUCCESS 或者EXCEPTION

10. 异常信息

e.getMsg(); 获取异常的信息

再写一个日志保存的service类在@AfterReturning@@AfterThrowing通知中保存到数据库即可

猜你喜欢

转载自blog.csdn.net/minecodelife/article/details/81058144