SpringAOP 如何制定规则呢? 一个切面,就代表着N个Bean的一个集合,这N个Bean他们都拥有共同点,所有他们组成一个切面。
切面:切面里所有类(Bean)的共同点
连接点:类里面所有方法的共同点(规定切面中方法调用的一些规则,何时触发规则,比如说后一个方法抛出异常,则前一个方法要执行回滚。)
切入点:进入切面内部的一个入口(主动调用方法)。
一旦在调用过程中,满足连接点的规则,那么就会触发一个通知:调用代理写的代码。
目标对象:被代理对象的引用。
通知的类型:
前置通知、后置通知、返回后通知(我们方法调用完成,并且该方法拥有返回值触发After return Advice)、环绕通知(类似于一个拦截器链)、抛出异常后通知
通知机制的设计,完美解决了代码的耦合问题。
Spring AOP底层实现剖析
1、AOP 的体系结构(需求、组成)
2、JAVA proxy、CGLIB 基础补充
3、String Aop 定义组件、通知拦截组件、调用组件