AOP常见的使用场景有权限检查,记录日志.事务管理
AOP是一种编程思想,是对OOP的补充,可以进一步提高编程的效率
Pointcut
:用来定义当前的横切逻辑准备织入到哪些连接点上
Advice
:用来定义横切逻辑,即在连接点上准备织入什么样的逻辑
Aspct
:是一个用来封装切点和通知的组件
Jointpoint
:指目标对象上将要被织入的方法
织入
织入,就是将方面组件的横切逻辑,织入到目标对象的连接点的过程
AspectJ
在编译器织入代码,他有一个专门的编译器,用来生成遵守Java字节码规范的class文件
SpringAOP使用纯Java实现,它不需要专门的编译器,也不需要特殊的类加载器
SpringAOP
在运行时通过代理的方式织入代码,仅仅支持织入在方法上的连接点
JDK
动态代理,时Java提供的代理技术,可以在**运行时**创建接口的代理实例
SpringAOP默认采用JDK动态代理,在接口的代理实例中织入代码
CGLib动态代理
,采用底层的字节码技术,在运行时创建子类代理对象