一、简介
spring最核心的两个思想/功能是aop【面向切面】与ioc【控制反转】。本篇文章主要介绍aop相关的点;
二、aop介绍
aop【面向切面】,AOP主要实现的目的是针对业务处理过程中的切面进行提取,面对的处理过程中的某个步骤或阶段,达到逻辑过程中各部分之间低耦合性的效果。
三、AOP名称
- 切面(Aspect):关注点的模块化,关注点可能会横切多个对象。spring AOP中,切面可以使用基于模式或基于注解@Aspect注解方式实现
- 连接点(JoinPoint): 程序执行过程中某个特定的点,spring AOP中,一个连接点总表示一个方法的执行;
- 通知(Advice) :在切面的某个特定的连接点上执行的动作,比如:around,before和after等。大部分AOP框架都是以拦截器做通知模型,并维护一个以连接点为中心的拦截器链;
- 切入点(Pointcut): 匹配连接点的断言。通知和切入点表达式关联,并在满足切入点的连接点上执行。切入点表达式如何和连接带你匹配是AOP的核心;
- 引入(Introduction): 用来给一个类型声明额外的方法或属性
- 目标对象(Target Object):被一个或多个切面所通知的对象
- AOP代理(aop proxy):Aop框架创建的对象,用来实现切面契约。在spring 中,Aop代理可以是JDK代理或CGLIB代理。如果对两代理不了解可以查阅:https://www.jianshu.com/p/fdd50ca9d130
- 织入(Weaving):把切面连接到其他应用程序类型或对象上,并创建一个被通知的对象