100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java自定义注解实现日志功能

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

时间:2022-09-29 10:16:11

相关推荐

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 , level=3, operationUnit='user', method='com.cyh.service.UserService.findUserName', args='["1234567"]', userId='null', userName='null', describe='null', operationType='select', runTime=2, returnValue='"zhangsan"'}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。