AOP的几个关键属性
AspectJ 切面 (定义的那个类)
Pointcut 切点 (真正的切入方法)
Advice:通知 (around”,“before”和“after”)就是触发切面的原因
Join point:连接点 要把程序插入那个程序运行点
AOP 常用的场景
日志、鉴权、方法调用统计。。。
SpringAOP 包含 jdk 动态代理 和CGLIB 动态代理
两者都是在JVM运行时期创建一个Class对象,实例化一个代理对象,对目标类进行代理,JDK 动态代理只能基于接口进行代理,生成的代理类实现了这些接口,而CGLB 动态代理则是基于类进行代理,生成的代理类继承目标类但是不能被final修饰的类,也不能重写final或者private 修饰的方法。CGLIB 动态代理比JDK 动态代理负责许多,性能也相对比较差。
springAOP 通过接口实现动态代类,CGLIB 是通过类继承来实现动态代理类
Spring AOP 和AspectJ 有什么关联?
Spring AOP 和AspectJ 都是AOP 的实现框架,AspectJ 是AOP 的完整实现,Spring AOP 则是部分实现。AspectJ 有一个很好的编程模型,包含了注解的方式,也包含了特殊语法。
死磕Spring之AOP篇 - Spring AOP常见面试题 - 月圆吖 - 博客园https://www.cnblogs.com/lifullmoon/p/14654795.html