Spring AOP中的动态代理实现机制

AOP中的目标对象(target object),也被称为是advised object,是在pointcut处插入aspect时所执行的advice方法中所用到的对象。有点罗嗦,请慢慢体会。

任何一个target object都是通过动态代理机制创建的,以实现在运行时被动态插入。

本文介绍Spring AOP中的动态代理实现机制,即介绍创建target object的机制。


Spring AOP中的动态代理实现机制采用了两种方式,一种是默认使用的标准JDK提供的基于接口的动态代理机制,对于实现了接口的target object,都能够而且建议采用该机制动态创建。

但是,对于那些未实现任何接口的target object,Spring AOP只能采用另一种方式,即使用CGLIB的动态代理机制。但是采用CGLIB的动态代理,需要注意以下事项:

  • advice方法不能是final
  • Spring 3.2及以后版本,无需单独添加CGLIB类库,因为相关类库已经被包含在spring-core模块中
  • Spring 4.0及以后版本,被代理对象的构造函数不会再被调用2次了

强制AOP采用CGLIB动态代理的XML配置

<aop:config proxy-target-class="true">
    <!-- other beans defined here... -->
</aop:config>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值