spring 技术内幕阅读笔记 - spring aop


AOP 概念

Advice (通知): 定义在连接点做什么,为切面增强提供织入接口

Pointcut (切点):决定Advice通知应该作用于哪个连接点,对增强的方法的过滤

Advisor (通知器):定义应该使用 哪个Advice 并在哪个Pointcut 使用它,把Advice 和 Pointcut 结合起来

以上概念的具体体现:

Advice 继承体系 ,以 BeforeAdvice,AfterAdvice 为例

 spring 技术内幕阅读笔记 - spring aop_第1张图片

Pointcut 继承体系,以 JdkRegexpMethodPointcut 为例

spring 技术内幕阅读笔记 - spring aop_第2张图片

Advisor 继承体系,以 DefaultPointcutAdvisor 为例

建立AopProxy代理对象

以 ProxyFactoryBean 为例

ProxyFactoryBean 配置 

1. 定义Advisor 使用的通知器

2. 定义ProxyFactoryBean 属性有 

proxyInterfaces 代理接口

interceptorNames  通知器

target 目标增强的对象


ProxyFactoryBean 生成 AopProxy

为Proxy代理对象配置Advisor initializeAdvisorChain

获得代理对象 getSingletonInstance

AopProxyFactory 生成 AopProxy ,两个实现



Spring AOP 拦截器调用的实现

AopProxy 代理对象 如何发挥拦截作用和实现AOP功能的?

AOP是怎样对目标对象增强的?

ReflectiveMethodInvocation proceed 会逐个运行拦截器的拦截方法,如果运行到拦截器尾,直接调用目标对象的实现方法,否则,沿着拦截器继续进行,得到下一个拦截器,通过这个拦截器进行mathes判断是否适用于横切增强的场合。如果是,从拦截器中得到通知器,并启动通知器的invoke方法进行切面增强,在这个过程结束后,会迭代调用proceed方法。


Spring Aop  高级特性



你可能感兴趣的:(spring 技术内幕阅读笔记 - spring aop)