java自定义注解实现日志功能

一、spring aop的通知类型
1、前置通知(@Before):在连接点前执行,不会影响连接点的执行,除非抛异常;
2、后置通知(@AfterReturning):在连接点正常执行完成后执行,若连接点抛出异常,则不执行;
3、后置通知(@AfterThrowing):在连接点抛出异常后执行;
4、后置通知(@After):在连接点执行完成后执行,不管有无异常,都会执行通知;
5、环绕通知(@Around):在连接点执行前后执行,joinPoint.proceed()之前为前置通知,之后为后置通知。
二、使用环绕通知实现自定义注解日志功能
1、代码结构如下

在这里插入图片描述
2、配置文件application.properties

spring.aop.auto = true:开启spring的aop功能

3、用@interface定义一个注解OperateLogAnnotation,即暴露在外的自定义注解
4、定义切面:LogAspect,实现通知的具体内容

a、定义一个切入点,即为第三步顶一个OperateLogAnnotation类
b、定义一个环绕通知的方法,这里调用连接点的proceed()方法,启动目标方法,在该方法前后可添加通知信息。

5、定义一个日志对象,用来保存日志的实例
6、定义两个枚举类,OperateLogAnnotation用到的
7、使用自定义注解
在这里插入图片描述
将自定义注解加到service方法上,启动项目,访问 http://localhost:10000/user/findUserNameByTel?tel=1234567 ,控制台打印如下日志

记录日志:OperationLog{id='afd2d9a5-c6ef-434d-9217-fcfc03009d51', createTime=Wed Jul 17 10:13:26 CST 2019, level=3, operationUnit='user', method='com.cyh.service.UserService.findUserName', args='["1234567"]', userId='null', userName='null', describe='null', operationType='select', runTime=2, returnValue='"zhangsan"'}

源码地址

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值