Spring与AOP

版权声明: https://blog.csdn.net/qq_42499188/article/details/84617503

AOP(Aspect Orient Programming),面向切面编程,是面向对象编程OOP的一种补充。面向对象编程是从静态角度考虑程序的结构,而面向切面编程是从动态角度考虑程序运行过程。

AOP底层,就是采用动态代理模式实现的。采用了两种代理:JDK的动态代理,与CGLIB的动态代理

面向切面编程,就是将交叉业务逻辑封装成切面,利用AOP容器的功能将切面织入到主业务逻辑中。所谓交叉业务逻辑是指,通用的、与主业务逻辑无关的代码,如安全检查、事务、日志等。

AOP编程术语

(1)切面(Aspect):切面泛指交叉业务逻辑。上例中的事务处理、日志处理就可以理解为切面。常用的切面有通知与顾问。实际就是对主业务逻辑的一种增强。

(2)织入(Weaving):织入是指将切面代码插入到目标对象的过程。

(3)连接点(JoinPoint):连接点指可以被切面织入的方法。通常业务接口中的方法均为连接点。

(4)切入点(Pointcut):切入点指切面具体织入的方法。被标记为final的方法是不能作为连接点与切入点的。因为最终的是不能被修改的,不能被增强的。

(5)目标对象(Target):目标对象指将要被增强的对象。即包含业务逻辑的类的对象。

(6)通知(Advice):通知是切面的一种实现,可以完成简单织入功能(织入功能就是在这里完成的)。通知定义了增强代码切入到目标代码的时间点,是目标方法执行之前执行,还是之后执行等。通知类型不同,切入时间不同。切入点定义切入位置,通知定义切入的时间

(7)顾问(Advisor):顾问是切面的另一种实现,能够将通知以更为复杂的方式织入到目标对象中,是将通知包装为更复杂切面的装配器。

猜你喜欢

转载自blog.csdn.net/qq_42499188/article/details/84617503