2018-1 Spring AOP 1

Spring AOP 学习笔记 (摘自sping3.x企业应用开发实战)

AOP, Aspect Oriented Programming的简称,面向切面编程,适用于具有横切逻辑的应用场景,比如性能检测,访问控制,事务管理以及日志记录。为消除分布在业务代码中的重复非业务代码而出现的。

连接点(JoinPoint)

程序执行的某个特定位置:类初始化前后,方法调用前后,异常抛出后。Spring只支持方法的连接点,连接点是APO向目标类打入楔子的选择点。连接点由两个信息确定:

 1. 方法表示的程序执行点,比如方法foo()

 2.用相对点表示的方位,如foo()执行前的位置,方位在增强类型中定义。

切点(PointCut)

切点用于定位连接点,。连接点类似数据库中记录,而切点相当于查询条件,一个切点可以匹配多个连接点。Spring使用类和方法作为连接点的查询条件。

增强(Advice)

织入到目标类连接点上的一段程序代码(像不像黑客行为?)。包含

 1. 程序代码

 2.执行点的方位, 结合切点信息便可找到连接点

Target  advice织入的目标类

引介Introduction

特殊的增强,为类添加一些属性和方法,可以为一些业务类动态添加没有实现的接口的实现逻辑,让该业务类成为接口的实现类。

织入(Weaving)

将Advice添加到target具体连接点上的过程。AOP具有三种织入方式:

 1. 编译期织入:要求使用特殊的java编译器, AspectJ使用该种方式。

 2. 类装载期织入:要求使用特殊的类装载器,AspectJ使用该种方式。

 3.动态代理织入: 在运行期为目标类添加增强, Spring便是采用这种方式。

代理(Proxy)

Advice+Target = Proxy,即可以是和原类具有相同接口的类,也可以是原类的子类。

切面(Aspect)

由切点和增强(引介)组成,包括了横切逻辑,也包括了连接点的定义,Spring AOP就是负责实施切面的框架,它将切面所定义的逻辑织入到切面所制定的连接点中。



强烈推荐的书:

Spring3.x 企业应用开发实战(电子工业出版社)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值