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…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

主动变被动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 …

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

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

python代码_python爬虫19 | 遇到需要的登录的网站怎么办?用这3招轻松搞定!

你好由于你是游客无法查看本文请你登录再进谢谢合作当你在爬某些网站的时候需要你登录才可以获取数据咋整?莫慌小帅b把这几招传授给你让你以后从容应对那么接下来就是学习 python 的正确姿势登录的常见方法无非是这两种1、让你输入帐号和密码登录2、让你输入帐号密码…

利用电脑上自带指纹识别嵌入程序中_Win 10 隐藏功能:不用任何软件就可实现手机投屏到电脑...

投屏工具我也介绍了不少,所有的都是需要安装第三方软件的。不过,其实 Windows 10 就自带了手机投影到电脑的功能,不需要任何软件就能实现。在设置中打开系统,找到投影到此电脑,在红框中根据你的需要设置好,…

为什么要重写hashCode()方法和equals()方法以及如何进行重写

一、前言 本篇文章主要探讨的问题有三个: 1、首先我们为什么需要重写hashCode()方法和equals()方法? 2、在什么情况下需要重写hashCode()方法和equals()方法? 3、如何重写这两个方法? 二、为什么需要重写hashCode()方法和equal…

bloomberg用法 固定收益_内部收益率的用法浅谈某保险的真实收益率

公司财务课程,魏教授讲得非常棒,治愈了大家的瞌睡,激起了大家的学习热情。我一直认为,大牛在讲课,吹牛还是演讲中,都能够给现场观众提供强大的能量,使得彼此运行在同一个共振频率。内部收益率(I…

联想小新锐7000主板型号_2020年高性价比游戏本选购推荐指南——7000价位游戏本推荐...

玩电脑的老猫,只说你最想听的话!大家好,我是老猫,这段时间很多小伙伴问我,多少钱能买到一台不错的游戏本呢?知乎中很多人说5000元买游戏本,就是等于买一台“电子垃圾”虽然5000元的游戏本不是非…

Java重写equals方法时为什么要重写hashCode方法

在我们平时编写Java代码时,重写equals方法时一定要重写hashCode方法,这是为什么呢? 在讨论这个问题前,我们先看下Object类中hashCode方法和equals方法。 hashCode方法: 翻译如下: equals方法:…

iot nb 曹淑敏 鹰潭_移动物联时代来啦 鹰潭一项成就为全球首个 江西力争在全国“四个领先”...

移动物联网是基于移动通信网络的物联网技术体系,主要由NB-IoT(窄带物联网技术)、eMTC(增强机器类通信技术)、蜂窝网的未来演进技术5G(第五代移动通信技术)三种技术共同构成。江西网络广播电视台9月1日讯(记者 李希文)9月1日下午,江西省工信委、中国信息通…

RPC(一)[概述]

文章目录RPC-概述简介1.服务的调用过程2.RPC框架1.Dubbo–电商2.Motan–互联网3.Thrift4.gRPC5.RPCX3.RPC 和 RESTful1.RPC over HTTP 和 RESTful2.RPC over TCP 和 RESTfulRPC-概述 简介 远程过程调用(Remote Procedure Call,缩写为 RPC)是…

epic登陆按钮一直在转_双剑合璧!GOG GALAXY 2.0官方支持Epic商店集成

2020年7月21日晚,GOG官方宣布提供与Epic商城的集成服务,这也是GOG GALAXY 2.0推出以来又一次与超大型游戏平台达成的合作。现在玩家可以通过GOG GALAXY 2.0管理、安装和启动来自Epic商城的游戏。需要注意的是,因为这次行为是完全官方的&#…