AOP 的理解
了解 AOP 的解耦实现
====== 所以 AOP 是什么 不改变源码 预示 着 ------ 用的是动态代理 与 代理基于 反射
Spring 的事务 还是封装 的是AOP 来实现 的 AOP 用的最多的就是 日志方面
AOP优势 : 基于一个需求的实现 : 在所有业务之前完成 日志的控制 :
通过此案例 认识 spring AOP 实现动态代理 的jdk 与 Cglib
理解AOP的案例
djk 动态代理方式 :代理类的是匿名对象 代理类在内存里
代理对象 proxy 要执行方法会先 执行 反射的 invoke 方法里增强的方法
====== 01 cglib动态代理 ======
####### CGLib
CGLib实现的动态代理除了可以不通过接口实现动态代理的优点之外,还有处理速度快、效率高的优点!因为生成代码比Java反射的速度要快很多。
CGLib到底是什么?其实CGLib是依靠asm字节码处理框架实现的一个high level & 高性能 & 高质量的Code生成类库,可以在运行时扩展Java类或者实现接口。那可不可以直接通过asm框架来实现CGLib可以实现的功能呢?当然可以,不过要想熟练运用asm框架必须对Java类文件的格式和指令集比较熟悉。CGLib对用户隐藏了asm复杂的内部实现,提供了Developer友好、面向特定功能的实现,比如方法拦截(Interpreter)、懒加载(Lazyloader & Dispatcher)等,因此用户不需要有Java底层类文件格式的知识就可以通过CGLib实现动态代理。