首页 > 编程语言 > 详细

阶段3 2.Spring_07.银行转账案例_9 基于子类的动态代理

时间:2019-08-14 22:04:38      阅读:83      评论:0      收藏:0      [点我收藏+]

代理一个普通的java类


导入cglib的包
技术分享图片
它还有一个asm的依赖。会自动加进来
技术分享图片
创建cglib的文件夹。把proxy里面的Client和Producer复制到cglib文件夹
技术分享图片
Producer不实现任何的接口
技术分享图片
Client内的代码要重新写

不能受罪种类,如果是最终类就不能再创建子类了

技术分享图片

参数1是Class 参数2是Callback
技术分享图片

技术分享图片
MethodInterceptor是Callback的子接口
技术分享图片
前面三个参数和基于接口的动态代码参数是一样的
技术分享图片

技术分享图片
producer需要用final来修饰
技术分享图片

技术分享图片
调用一下这个方法,传入1万2f
技术分享图片

技术分享图片
技术分享图片

对已经写好的方法进行增强。并且在增强的过程中提供一些我们需要实现的功能

用处

连接池的close方法在关闭的时候不能真正的关闭,而是要还回池中。那就可以使用动态代理的方式对connection的close方法进行增强。把它加回到池里面去

解决全站中文乱码request方法的增强,用装饰者模式可以实现,用动态代理同样可以实现。就是对getParameter的三个方法进行增强。

 

阶段3 2.Spring_07.银行转账案例_9 基于子类的动态代理

原文:https://www.cnblogs.com/wangjunwei/p/11354283.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!