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

(spring-第17回【AOP基础篇】) 创建增强类

2016-05-23 10:07 411 查看

一、 增强类包含的信息:

a) 横切逻辑(插入的具体代码)

b) 部分连接点信息(在方法的哪个位置插入代码,比如方法前、方法后等)。

二、 增强的类型

每一种增强有一个需要实现的增强类。

a) 前置增强

顾名思义,在目标方法前实施增强。

增强类:org.springframework.aop.MethodBeforeAdvice.

举例,三步走:

1) 第一步,创建目标类接口和目标类:

  


  


2) 第二步,实现MethodBeforeAdvice,创建增强类:



3) 第三步,通过ProxyFactory把增强织入目标类,并生成代理。



4) 第三步改为在XML中配置:



配置中当然还有一些其他属性。比如singleton,决定返回是否为单实例等。

三个P分别为:指定代理的接口、指定目标类、指定增强

5) 注意事项:

ProxyFactory 内部使用JDK代理或CGLib代理。

通过ProxyFactory的setInterfaces可以指定针对接口进行代理(这时ProxyFactory就使用JDK动态代理。)

如果是针对类的代理,则使用CGLib。

通过ProxyFactory 的setOptimize(true)可启动自动优化代理。

b) 后置增强

c) 环绕增强(综合实现了前置、后置增强)

d) 异常抛出增强

常用于事务管理,当参与事务的某个Dao发生异常时,事务管理器就必须回滚事务。这时可以在增强逻辑中写回滚代码。

e) 引介增强

引介增强是一种比较特殊的增强类型,它不是在目标方法周围织入增强,而是为目标类创建新的方法和属性

所以,引介增强的连接点是类级别的,而非方法级别。

所以,我们可以给目标类添加一个接口的实现,即原来目标类未实现某个接口,通过引介增强可以为目标类创建某接口的代理。

举例:三步走:

1) 第一步,定义接口

  


  第四行是我们企图加在目标类上的增强方法。

2) 第二步,通过XML配置把增强织入目标类



3) 第三步,强制实现

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: