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的应用
- 反向控制和面向切面编程在Spring的应用
- spring_由注解实现AOP面向切面编程_实现动态代理
- Spring 面向切面编程AOP
- Spring--AOP--面向切面编程
- spring学习--面向切面编程AOP和AspectJ
- spring-05 之AOP 面向切面编程 一
- Spring---AOP面向切面编程
- Spring面向切面编程AOP(around)
- 快速高效掌握企业级项目中的Spring面向切面编程应用,外带讲面试技巧
- 黑马程序员--Spring Aop 面向切面编程,实现前置通知
- Spring AOP 面向切面编程 常见通知实现(前置,后置,环绕,异常)
- 关于spring.net的面向切面编程 (Aspect Oriented Programming with Spring.NET)-使用工厂创建代理(Using the ProxyFactoryObject to create AOP proxies)
- spring AOP面向切面编程的四种实现方式
- 【spring-boot】spring aop 面向切面编程初接触--切点表达式
- Spring 面向切面编程AOP
- 笔记——spring基本使用(控制反转IOC、面向切面编程AOP、声明式事务)
- Spring面向切面编程AOP
- 关于spring.net的面向切面编程 (Aspect Oriented Programming with Spring.NET)-简介
- Spring 面向切面(AOP)编程,注解