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


AOP 概念

Advice (通知): 定义在链接点作什么,为切面加强提供织入接口spa

Pointcut (切点):决定Advice通知应该做用于哪一个链接点,对加强的方法的过滤代理

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

以上概念的具体体现:
继承

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

 

Pointcut 继承体系,以 JdkRegexpMethodPointcut 为例get

Advisor 继承体系,以 DefaultPointcutAdvisor 为例it

创建AopProxy代理对象

以 ProxyFactoryBean 为例io

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  高级特性

相关文章
相关标签/搜索