您的位置:首页 > 编程语言 > Java开发

Spring面向切面编程一

2017-11-19 17:55 162 查看

1、AOP是什么?

AOP(Aspect-Oriented Programming), 即 面向切面编程, 它与 OOP( Object-Oriented Programming, 面向对象编程) 相辅相成,提供了与 OOP 不同的抽象软件结构的视角。
AOP面向切面编程将程序中的交叉业务逻辑(比如安全,日志,事务),封装成一个切面,然后注入到目标业务逻辑中去。切面能够帮助我们模块化横切关注点,这样做的好出是:第一,每个关注点都集中于一个地方,而不是分散到多处代码中。其次,业务模块代码更简洁,只包含核心功能代码,次要的关注点代码被移到切面中了。

2、AOP术语

(1)切面Aspect:切面是AOP的基本单元,它是由通知和切点的的结合,它定义了切面是什么、何时、何处将通知织入到目标对象特定的连接点上。
(2)连接点Joinpoint:一个类或一段程序代码拥有一些具有边界性质的特定点,比如类初始化之前,方法执行前,方法执行后,异常抛出时等等,切面代码可以利用这些连接点织入增强到正常的应用程序中。
(3)切点Pointcut:在 Spring 中, 所有的方法都可以认为是 joinpoint, 但是我们并不希望在所有的方法上都添加 Advice, 而 pointcut 的作用就是定义通知要匹配的一个或多个连接点,切点有助于缩小通知的连接点的范围。一个切点可以对应一个或多个连接点。AOP通过切点找到特定的连接点。
(4)通知Adivce:通俗的讲:切面的工作称之为通知,就是讲通知织入到目标对象特定的连接点上的一段代码。通知还包含了何时执行的信息。五种通知:前置通知、后置通知、环绕通知、最终通知、和异常通知。
连接点是程序执行过程中能够应用通知的所有点,切点定义了通知应用到那些连接点。
Adivce是在Joinpoint上执行的, 而Pointcut 规定了哪些Joinpoint可以执行哪些
Adivce
(5)引入Introduction:引入是一种特殊的增强,为现有的类添加一些属性和方法。
(6)织入Weaving:就是将切面添加到目标对象并创建出代理对象的过程。切面在指定的连接点被织入到目标对象中去,在目标对象的生命周期里有多个点可以进行织入:编译器、类加载期、运行期。

3、Spring实现AOP的方式

(1)通过配置文件实现AOP
(2)通过注解实现AOP
以上两种支持方法连接点,因为Spring的AOP是基于动态代理实现的。要想实现除了方法切点,还提供字段和构造器的切入点,就要使用AspectJ和JBoss
(3)AspectJ切点函数
(4)AspectJ通知注解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring aop