当前位置: 首页 > news >正文

SSM--AOP 日志

AOP(Aspect Oriented Programming 面向切面编程)


日志:

​ 1、硬编码:不推荐 耦合:(通用逻辑和 专用逻辑)希望不要耦合

​ 2、静态代理: (编码时介入)

​ 定义:创建一个代理对象,包装这个组件。以后业务的执行,从代理开始,不用直接调用组件。

​ 特点:定义期间就指定好了互相代理的关系

​ 优点:同一种类型的所有对象都能代理

​ 缺点:范围太小了 只能负责部分接口代理功能

​ 3、动态代理: (运行期间才决定好代理关系)(拦截器思想:拦截所有)
​ 定义:目标对象在执行期间会被动态拦截,插入指定逻辑

​ 优点:可以代理世间万物

​ 缺点:比较难写

​ 动态代理是 Java 原生支持的

CleanShot 2025-04-16 at 16.33.39CleanShot 2025-04-16 at 16.36.45

动态代理加日志

CleanShot 2025-04-16 at 16.43.37

动态代理:JDK 动态代理:强制要求,目标对象必须有接口,代理的也只是接口规定的方法

CleanShot 2025-04-16 at 16.54.52

AOP实现步骤

1、导入 AOP 依赖

2、编写切面 Aspec

3、编写通知方法

4、指定切入点表达式

5、测试 AOP 动态织入

CleanShot 2025-04-16 at 17.09.27

@Around:环绕通知,可以控制目标方法是否执行,修改目标方法参数,执行结果等

CleanShot 2025-04-16 at 17.12.36

增强器链:切面中的所有通知方法其实就是增强器,他们被组织成一个链路放在集合中,目标方法真正执行前后会去增强器链中执行需要执行的方法

AOP 底层原理:

1、Spring 会为每个被切面切入的组件创建代理对象

2、代理对象中保存了切面类里面所有通知方法构成的增强器链

3、目标方法执行时,会先去执行增强器链中拿到需要提前执行的方法

通知方法的执行顺序:

​ 1、正常链路:前置通知–>目标方法–>返回通知–>后置通知

​ 2、异常链路:前置通知–>目标方法–>异常通知–>后置通知

JoinPoint :包装了 当前目标方法的所有信息

多切面执行顺序

CleanShot 2025-04-17 at 16.55.16

http://www.dtcms.com/a/145521.html

相关文章:

  • 2025/4/20 实验作业 linux系统权限相关实验
  • 股票分析技术指标【MACD】
  • 集合框架(重点)
  • ThreadLocal - 原理与应用场景详解
  • 解决IDEA创建SpringBoot项目没有Java版本8
  • 冠珠瓷砖X2025佛山潭洲陶瓷展主题论坛·AI+未来专场精彩回顾
  • javase 学习
  • Linux驱动开发--异步通知与异步I/O
  • Linux——SSH
  • Transformer系列(二):自注意力机制框架
  • 算法篇之单调栈
  • 如何一键批量删除多个 Word 文档中的页眉和页脚
  • 656SJBH重金属音乐点歌系统
  • Linux下加载可执行文件所在目录下的so的方法
  • rk3568build-linux.sh解析
  • 项目二 - 任务7:统计一组学生成绩
  • 【计量地理学】实验七 多种地统计方法的插值比较
  • Cribl 对Windows-xml log 进行 -Serialize-05
  • 王博:影视领域的多元创作先锋,以卓越才华开启新篇章
  • 如何编写JavaScript插件
  • MySQL-锁机制3-意向共享锁与意向排它锁、死锁
  • 从入门到精通汇编语言 第六章(中断及外部设备操作)
  • ONLYOFFICE深度解锁系列.3-OnlyOffice集成第三方软件原理揭秘:如何提高文件打开速度
  • 器件(七)—MOS管选型及驱动电路设计
  • 动态规划入门:背包问题求具体方案(以0-1背包问题为例)
  • 免费图片软件,可矫正倾斜、调整去底效果
  • 【二叉树专题】一道深入浅出的 DFS 题:求二叉树的直径(含通俗易懂讲解)
  • 精准分割 - 深入解析 Kubernetes 中的 NVIDIA Multi-Instance GPU (MIG)
  • JavaScript 笔记 --- part 4 --- Web API (part 2)
  • 自定义请求头导致跨域的解决办法