AspectJ静态

    • 编写方式和spring aop没有区别
    • Aspectj并不是动态的在运行时生成代理类,而是在编译的时候就植入代码到class文件
    • 由于是静态织入的,所以性能相对来说比较好

    动态代理

    • JDK动态代理是基于接口的方式,代理类和目标类都实现同一个接口。
    • CGLib动态代理是代理类去继承目标类,然后重写其中目标类的方法。

      动太代理和静太代理有都侵入性 但是学习在功低

    无侵入性,介理需要配置jvm的参数,如果容器化及devops能力不能的强,需要把插桩的代码和项目入在一起
    字节码插桩

    插桩就是将一段代码通过某种策略插入到另一段代码,或替换另一段代码。这里的代码可以分为源码和字节码,而我们所说的插桩一般指字节码插桩。

    Javassist /asm

    Javaagent