介绍
面向切面:通过预编译方式和运行期动态代理实现程序功能的统一的一种技术
优势:
减少重复代码
提高开发效率
维护方便
AOP的实现方式
使用动态代理技术
面向切面相关术语
Joinpoint连接点:
所有能被拦截到的点,能被增强的方法
Pointout切入点:
被增强的连接点,被增强的方法
Advice(通知/增强)
拦截到Joinpoint连接点之后的强化功能
通知类型:
前置通知,后置通知,异常通知,最终通知,环绕通知
Introduction(引介)
特殊通知在不修改类代码的前提下,Introduction可以在运行期为类动态地添加一些方法或Field
Target(目标对象)
代理的目标对象
Weaving(织入)
是指把怎强应用到目标对象来创建新的代理对象的过程
spring采用动态代理织入,而AspectJ采用编译期织入和类装载期织入
Proxy(代理)
一个类被AOP织入增强后,就产生一个结果代理类
Aspect(切面):
切入点和通知(引介)的结合
增强哪些方法,增强的方法是什么,调用增强方法的类,被增强的方法在什么时候执行,这些都需要我们来设置这个抽象的整个过程就叫做切面