网站代码优化方案,网站主页特效欣赏,WordPress搜索不通过数据库,大气的公司名称大全一、spring aop的通知类型 1、前置通知#xff08;Before#xff09;#xff1a;在连接点前执行#xff0c;不会影响连接点的执行#xff0c;除非抛异常#xff1b; 2、后置通知#xff08;AfterReturning#xff09;#xff1a;在连接点正常执行完成后执行#xff0…一、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?tel1234567 控制台打印如下日志
记录日志OperationLog{idafd2d9a5-c6ef-434d-9217-fcfc03009d51, createTimeWed Jul 17 10:13:26 CST 2019, level3, operationUnituser, methodcom.cyh.service.UserService.findUserName, args[1234567], userIdnull, userNamenull, describenull, operationTypeselect, runTime2, returnValuezhangsan}