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

代理一个普通的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的三个方法进行增强。

 

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