spring AOP (3)

继续讲spring的术语:

增强:其实就是一段程序代码,比如管理事务的代码,在spring中,增强除了描述一段代码外,还可以描述执行点的方位(在前或者后),所以spring的增强接口都带方位名:BeforeAdvice,AfterAdvice,AfterReturningAdvice等,但是增强没有指出对哪个方法进行增强,所以只有增强和切点同时存在才能确定特定的连接点。

引介:是一种特殊的增强,一般的增强,只是在方法前后等地方加入一段代码,不改变目标对象类的接口(方法)或者属性,而引介可以为目标类添加一些新的方法或者属性。

目标对象:就是增强要织入到的类,一般是业务逻辑类,增强一般是非业务逻辑。

织入:就是将增强添加到目标类的连接点上。

aop有三种织入方式: ①编译期织入,需要特殊的java编译器。②类装载织入,需要特殊的类装载器。③动态织入,在运行期为目标类添加增强生成子类的方式。

spring采用动态代理织入。(AspectJ采用编译期织入和类装载器织入)

代理:一个类被aop织入增强以后,产生一个结果类,它融合了原类和增强逻辑的代码,代理类即可以是和原类具有相同接口的类,也可能是原类的子类,所以我们可以采用调用原类的方式调用代理类。

切面:aop的意思就是面向切面编成,现在介绍切面。

切面由切点和增强(包括引介)组成,包含了横切逻辑的定义,也包含连接点的定义。spring aop就是将切面定义的横切逻辑,织入到切面指定的连接点中。

猜你喜欢

转载自xieyan30.iteye.com/blog/1844225