使用spring的aop(面向切面编程)实现日志管理功能。
在项目开发中一般会有需求需要记录用户对于一些业务或者系统的操作日志。而一般项目中会将记录日志抽象成一个公用的service方法,当controller或者service中执行了需要记录日志的操作后,会调用公用的日志service方法来进行入库记录。而另外一种方法便是利用spring自带的面向切面编程来记录日志。
1、使用面向切面编程需要了解几个概念:
- 通知(Advice) :需要进行业务封装的功能,此处是记录日志。
- 连接点(JoinPoint):允许使用通知的地方,比如方法执行前,方法执行后等。
- 切入点(PointCut) :使用通知的地方,
- 切面(Aspect) :通知、切入点组成一个切面。通知申明做什么、切入点和连接点申明在哪做。
- 引入(introduction):允许向现有的类添加
- 目标(target) :需要进行通知的对象,真正的业务逻辑。这里就是需要进行记录日志的地方。
- 代理(proxy) :
- 织入(weaving) :把切面应用到目标的过程。
这些概念都是比较抽象的概念,其实大致需要明白目标(需要进行切面通知的地方)、通知(封装业务功能的地方)就能正确使用了。
2、代码实现。
以springboot项目为例:一、首先需要有使用通知的代码,即目标。

二、定义自定义的注解(也可以不自定义,使用包或者类扫描):

三、定义通知,即需要进行通知的具体业务逻辑方法。



上图是使用自定义注解。图二红框标出处是使用注解,表示此方法需要进行通知。
上图是用的扫描,扫描到实体下所有的方法。有使用到其方法的就会进行通知。这种方法不需要再切点处使用注解。
文章参考:https://www.cnblogs.com/qlqwjy/p/8747476.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/147569.html