博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开涛spring3(6.9) - AOP 之 6.9 代理机制
阅读量:5934 次
发布时间:2019-06-19

本文共 475 字,大约阅读时间需要 1 分钟。

Spring AOP通过代理模式实现,目前支持两种代理:JDK动态代理、CGLIB代理来创建AOP代理,Spring建议优先使用JDK动态代理。

  • JDK动态代理:使用java.lang.reflect.Proxy动态代理实现,即提取目标对象的接口,然后对接口创建AOP代理。
  • CGLIB代理:CGLIB代理不仅能进行接口代理,也能进行类代理,CGLIB代理需要注意以下问题:

       不能通知final方法,因为final方法不能被覆盖(CGLIB通过生成子类来创建代理)。

       会产生两次构造器调用,第一次是目标类的构造器调用,第二次是CGLIB生成的代理类的构造器调用。如果需要CGLIB代理方法,请确保两次构造器调用不影响应用。

 

Spring AOP默认首先使用JDK动态代理来代理目标对象,如果目标对象没有实现任何接口将使用CGLIB代理,如果需要强制使用CGLIB代理,请使用如下方式指定:

对于Schema风格配置切面使用如下方式来指定使用CGLIB代理:

而如果使用@AspectJ风格使用如下方式来指定使用CGLIB代理:

 

 

 

 

转载地址:http://gujtx.baihongyu.com/

你可能感兴趣的文章
Swift - 03 - 整数类型
查看>>
Lucene提供的条件判断查询
查看>>
c语言位域
查看>>
LeetCode - Subsets II
查看>>
Ubuntu 14.04 配置VNC服务 配置Xfce4桌面
查看>>
(转)supertable像excel那样固定table的表头和第一列
查看>>
R语言中的标准输入,输出, 错误流
查看>>
引用作形參--输入三个整数,採用地址的方法按从大到小排序
查看>>
西川善司【神秘海域(Uncharted)】的图形分析
查看>>
灵活定义神经网络结构
查看>>
WebRTC开发基础(WebRTC入门系列2:RTCPeerConnection)
查看>>
sql 2008 R2添加对MySql的远程服务器链接
查看>>
配置rhel 6.4(64位)安装使用syslog-ng 3.5
查看>>
Adrnoid开发系列(二十五):使用AlertDialog创建各种类型的对话框
查看>>
javascript深入理解js闭包
查看>>
博客园首行缩进问题
查看>>
iOS: ios视频播放(MPMediaPlayerController,AVPlayer,AVPlayerViewcontroller、ffmpeg-AVPlayer)...
查看>>
[Android Pro] 将你的安卓手机屏幕共享到PC或Mac上
查看>>
excel同时冻结首行和首列怎么操作
查看>>
[Cycle.js] Generalizing run() function for more types of sources
查看>>