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"'}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java自定义注解annotation记录操作日志

说到注解我们平常用的可以说非常多啦,说几个常用的的注解 RestController Service Autowired 这些都是我们平常使用spring框架最常见的注解了,我们只知道它们非常好用,使用RestController 就能构建一个restful的控制器,Service 这个是我们常用…

数组concat_js 标准二维数组变一维数组的方法

问题:[[1, 1], [2, 3], [4, 5]] -> [1, 1, 2, 3, 4, 5]?方法一利用es5的arr.reduce(callback[, initialValue])实现var arr1 [[0, 1], [2, 3], [4, 5]]; var arr2 arr1.reduce(function (a, b) { return a.concat(b)} ); // arr2 [0, 1, 2, 3, 4, 5…

安卓手机小说阅读器_乐小说阅读器下载手机版-乐小说阅读器app下载安装

乐小说阅读器app,一款非常不错的小说阅读器,这里的小说资源不仅非常的丰富,而且用户们可以免费任意阅读。小说内容非常的优质,阅读界面非常的清爽简洁,无任何广告弹出。喜欢看小说的就下载试试吧!关于乐小说…

java 自定义注解+AOP实现日志记录

ssm版本: 1、首先自定义一个注解,该注解有两个属性,一个是模块名,一个是操作的内容。该注解是用来修饰Service层中的方法的。 2、创建一个切面类,该切面使用Aspect和Component注解修饰,该页面需要注入一个…

是人是谁_谁是白鹤滩最可爱的人

白鹤滩水电站是全球在建第一大水电站,主要特性指标均位居世界水电工程前列,2021年7月,首批机组投产发电将是白鹤滩工程为建党一百周年献礼的重大壮举。建设中的白鹤滩水电站工程建设不停步,白鹤滩水电站未来的运行管理者——白鹤滩…

使用@Order注解调整配置类加载顺序

Order 1、Spring 4.2 利用Order控制配置类的加载顺序, 2、Spring在加载Bean的时候,有用到order注解。 3、通过Order指定执行顺序,值越小,越先执行 4、Order注解常用于定义的AOP先于事物执行 1.Order的注解源码解读 注解类&am…

potplayer 多个进程_进程组、会话、控制终端概念,如何创建守护进程?

守护进程概念:守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程。周期性的执行某种任务或等待处理某些发生的事件。Linux系统有很多守护进程,大多数服务都是用守护进程实现的。比如:像我们的tftp&#xf…

hadoop ubantu环境搭建_ubuntu hadoop学习 环境搭建

单机模式下载hadoop-2.7.3.tar.gz 并解压缩安装java环境sudo apt install openjdk-8-jdk设置环境变量vim /etc/profileexport JAVA_HOME/usr/lib/jvm/java-8-openjdk-amd64export CLASSPATH.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATHexport HADOOP_HOME/usr/local/hadoop…

详细介绍mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE

文章目录Normal 普通索引Unique 唯一索引Full Text 全文索引SPATIAL 空间索引btree索引和hash索引的区别在实际操作过程中,应该选取表中哪些字段作为索引?Normal 普通索引 表示普通索引,大多数情况下都可以使用 Unique 唯一索引 表示唯一的…

acs880 用户手册_华中数控、广州数控系统用户手册

数控加工仿真系统 广州数控系统用户手册上海宇龙软件工程有限公司2004 年 5 月华中数控、广州数控系统用户手册 目录I目录第一章 基本操作 ............................................................................................ 1 1.1 项目文件 ...................…

自学java去哪找工作比较好_如何自学java?什么程度可以找工作?

我个人学习Java就是自学的,所以还是有一些发言权,我是非计算机专业,上大三的时候想做程序员,因为感觉本专业不挣钱,用了一年的时间在学校自学了Java,学习的过程中无非就是两个字最重要:坚持。因…

mysql索引类型 normal, unique, full text

问题1:mysql索引类型normal,unique,full text的区别是什么? normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时&#x…

亚马逊出的平板电脑_美国最畅销的安卓平板电脑,还只有2GB内存

在美国除了iPad,谁家的平板电脑卖得最好?不是华为小米,也不是微软或谷歌,而是Amazon亚马逊。主打入门级定位的亚马逊Fire系列平板电脑,在北美的平板市场上,有着举足轻重的地位。今天,亚马逊正式…

MySQL普通索引与唯一索引__mysql中唯一索引和普通索引的用途及区别

MySQL普通索引与唯一索引 索引作用: 提高查询效率,一般加在经常查询或者排序的字段上。 普通索引: 允许字段值重复 唯一索引: 保证数据记录唯一性 如何选择: 查询过程: 对普通索引来说&#xff0c…

对接kafka_Kafka系列9:面试题是否有必要深入了解其背后的原理?我觉得应该刨根究底(上)...

​前言在本文开始之前,作者一直有个疑惑,就是面试题是只写写问题和答案就草草了事,还是应该深入分析一下其背后发生的一些原理。和朋友探讨以后作者还是决定采用后者的方式,因为我认为不仅要做到知其一,更要知其二&…

资源不足的情况怎么设置sparkrdd并行度_监控录像机资源不足或达到上限的原因及解决方法!...

在安装网络监控摄像机过程中,很多人遇到硬盘录像机画面上提升“资源不足”或性能“达到上限”的问题,新手遇到这样的问题会选择重启录像机,但是几次反复发现并不能解决。监控录像机资源不足或达到上限的原因及解决方法!首先这种提…

python爬虫和八爪鱼哪个快_【后端开发】python爬虫和八爪鱼哪个快

八爪鱼有一些优势,比如学习成本低,可视化流程,快速搭建采集系统。能直接导出excel文件和导出到数据库中。降低采集成本,云采集提供10个节点,也能省事不少。八爪鱼采集器还提供了云采集服务,在很短的时间内就…

主动变被动9个例句_高中英语 :主动表被动的适用范围

1. 表衡量的动词。The room measures 5 by 6.2. sell, write, wash, read, wear, keep, drink等表状态的情况下。The pen writes well. The clothes wash well.3. 在动词不定式中主语发出的动作。I have a lot of work to do.4. 动词不定式前面的词为形容词时。The question …

node静态服务器优缺点_使用 Node.js 的优势和劣势都有哪些?

很多回答已经写的很全,补充(强调)一点——Node.js 中的容错性实在是很弱。当异步回调中出现异常,而相应的 error 的事件有没有被订阅(有时候根本不可能去订阅),那么整个进程都会挂掉。但尴尬的是,这个问题处理起来还特别难&#x…

为什么要重写hashcode方法和equals方法

为什么要重写hashcode方法和equals方法 我们可能经常听到说重写equals方法必须重写hashcode方法,这是为什么呢?java中所有的类都是Object的子类,直接上object源码 /** Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights …