现在的位置: 首页 > 综合 > 正文

AOP基本概念 AOP基本概念

2018年05月23日 ⁄ 综合 ⁄ 共 1287字 ⁄ 字号 评论关闭

AOP基本概念

一 几个基本概念

1 切面(Aspect) :官方的抽象定义为“一个关注点的模块化,这个关注点可能会横切多个对象”。业务点好不好~

2 连接点(Join Point):指的是程序运行中的某个阶段点,如某个方法调用、异常抛出等。

3 通知(Advice):“切面”对于某个“连接点”所产生的动作。

4 切入点(Pointcut):匹配连接点的断言。 
,是Join Point的集合,它是程序中需要注入Advice的位置的集合,指明Advice要在什么样的条件下才能被触发。

5  Advisor是Pointcut和Advice的配置器,它包括Pointcut和Advice,是将Advice注入程序中Pointcut位置的代码。

6 目标对象(Target Object) :被一个或者多个切面所通知的对象。在实际运行时,Spring AOP采用代理实现,实际AOP操作的是TargetObject的代理对象。

7 AOP代理(AOP Proxy) :在Spring AOP中有两种代理方式,JDK动态代理和CGLIB代理。默认情况下,TargetObject实现了接口时,则采用JDK动态代理。

 

二 几种类型

前置通知:在连接点之前执行的通知,但这个通知不能阻止连接点前的执行 

返回后通知:在连接点正常完成后执行的通知 

抛出异常后的通知:在方法抛出异常退出时执行的通知。 

后通知:当某连接退出的时候执行的通知。 

环绕通知:包围一个连接点的通知。

 

三 Spring实现

创建代理对象需指定的三要素:
①target:设定目标对象(只能是一个);
②proxyInterfaces:设定代理接口(目标对象所实现的接口);
③interceptorNames:设定拦截器的名字(各个advice或advisor bean的列表)
Advice:五种(根据织入的时机不同而划分)
Before Advice:在目标对象的方法执行之前加入行为;
要实现的接口:org.springframework.aop.MethodBeforeAdvice
After Advice:在目标对象的方法执行之后加入行为;
要实现的接口:org.springframework.aop.AfterReturningAdvice
Throw Advice:在目标对象的方法发生异常时加入行为;
要实现的接口:org.springframework.aop.ThrowsAdvice
Around Advice:在目标对象的方法执行前后加入行为;
要实现的接口:org.aopalliance.intercept.MethodInterceptor
Introduction Advice:引入的行为(增加了可操作的方法)。
声明要添加的功能接口;
创建引入Advice;
(继承org.springframework.aop.support.DelegatingIntroductionInterceptor,并实现添加的功能接口)
在配置文件中定义一个DefaultIntroductionAdvisor的bean。
(需要两个构造方法的参数:Advice和添加的功能接口)


抱歉!评论已关闭.