场景: 小李:“小明,你的接口没有返回数据,麻烦帮忙看一下?” 小明:“我这边的数据也是从别人的服务器中拿到的,但是我不确定是因为逻辑处理有问题导致没有结果,还是因为我依赖的服务有问题而没有返回结果,我需要确认一下。” 小明:“哎呀,线上没有日志,我需要加一下日志发布一个版本。” 30分钟之后 …… 小明:“不好意思,日志加错地方了……稍等……”
一、AOP实现方式
AOP(面向切面编程,AspectOrientedProgramming)技术已被业界广泛应用,其思想是面向业务处理过程的某个步骤或阶段进行编程,这个步骤或阶段被称为切面,其目的是降低业务逻辑各部分之间的耦合,常见的AOP实现基本原理有两种:代理和行为注入。
代理模式(动态编织)
通过创建一个代理对象来代理原对象的行为,代理对象拥有原对象行为执行的控制权,是基于代理对象在原对象行为执行的前后插入代码来实现AOP。
行为注入模式(静态编织)
这种方式不会创建一个新的对象,而是修改原对象,在原对象行为的执行前后注入代码来实现AOP,这种方式是在字节码生成时根据一定的规则提前将AOP字节码插入到目标类和方法中,实现AOP。
上述aop实现方案的局限性:
- 1、侵入性:需要在目标应用代码中进行改造
- 2、固化性:目标方法在启动之后即固化,无法