动态代理类(JDK和CGlib)开发步骤
2022/8/29 23:24:39
本文主要是介绍动态代理类(JDK和CGlib)开发步骤,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
开发步骤:
1.创建被代理类(代理的目标对象)和接口
2.创建一个实现InvocationHandler接口的类(真正的调用被代理类/目标对象的方法),这个是调用处理器
3.通过java.lang.reflect下面的Proxy.newProxyInstance()方法得到代理对象,代理类
Proxy类:用来生成代理对象;
Proxy.newProxyInstance(类加载器,接口类型,handler)
InvocationHandler:调用处理器,这个是动态代理的核心;类似于Filter,只不过,它拦截的是方法;
反射的操作就是一个被动语态
4.通过代理调用方法
InvocationHandler:调用处理器
2.CGlib
创建动态代理的第二种方式是使用CGlib
CGlib是第三方的库,在工程中必须导入
与JDK动态代理相比,它的特点:
JDK动态代理必须有接口,而CGlib是创建目标对象的子类,目标对象不能使用final类
JDK动态代理 | CGlib |
Proxy newProxyInstance() | Enhancer |
InvocationHandler调用处理器 | MethodInterceptor方法拦截器 |
invoke(Object代理对象,Method方法,Object[]参数) | intercepte(Object,代理对象,是目标类的子类,Method方法,Object[]参数,MethodProxy方法代理,通过此对象可以调用代理对象的方法,可以调用父类(目标对象的)方法],可以动过invokeSupper()来调用父类的方法) |
使用CGlib的步骤: 1.导包 2.定义一个类,实现MethodInterceptor接口,并重写方法 3.使用Enhancer来生成代理对象 |
步骤
1.导入CGlib包
2.定义一个类,实现MethodInterceptor接口,并重写方法
3.使用Enhancer来生成代理对象
也可以,重构一个新的方法,用来为各个真实类生成代理对象
这篇关于动态代理类(JDK和CGlib)开发步骤的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26大厂数据结构与算法教程:入门级详解
- 2024-12-26大厂算法与数据结构教程:新手入门指南
- 2024-12-26Python编程入门指南
- 2024-12-26数据结构高级教程:新手入门及初级提升指南
- 2024-12-26并查集入门教程:从零开始学会并查集
- 2024-12-26大厂数据结构与算法入门指南
- 2024-12-26大厂算法与数据结构入门教程
- 2024-12-26二叉树入门教程:轻松掌握基础概念与操作
- 2024-12-26初学者指南:轻松掌握链表
- 2024-12-26平衡树入门教程:轻松理解与应用