CgLib动态代理初步实践
来源:互联网 发布:软件开发 私活 价格 编辑:程序博客网 时间:2024/06/08 12:07
上面一篇主要讲了jdk提供的实现动态代理的方法,
本文主要接着上文给出了cglib动态代理基本写法。
传送门:JDK动态代理实践
里面共有2个新家的类,一个是用于实现invocationhandler(注意导包或者maven)
package study.JDKProxy;import java.lang.reflect.Method;import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy;public class HelloServiceCgLib implements MethodInterceptor{/** * 创建代理对象唉 */private Object target;public Object getInstance(Object target) {this.target = target;Enhancer enhancer = new Enhancer();enhancer.setSuperclass(this.target.getClass());//回调方法enhancer.setCallback(this);//创建代理对象return enhancer.create();}/** * 回调方法 */public Object intercept(Object arg0, Method arg1, Object[] arg2, MethodProxy arg3) throws Throwable {System.out.println("通过cglib来实现动态代理");Object returnObj = arg3.invokeSuper(arg0, arg2);return returnObj;}}
最后的测试方法:
@Testpublic void testCgLibProxy() throws InstantiationException, IllegalAccessException, ClassNotFoundException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException {Object service = Class.forName(HelloServiceImpl.class.getName()).newInstance();//获取服务方法helloMethod method = service.getClass().getMethod("sayHello", String.class);method.invoke(service, "June");}
和原生JDK相比,cglib的动态代理可以不提供接口就可以使用。
赠人玫瑰手留余香~~
阅读全文
0 0
- CgLib动态代理初步实践
- JDK和CGLIB动态代理实践
- cglib初步使用代理
- 动态代理-CGLib动态代理
- 初识CGLIB动态代理
- Cglib 动态代理
- CGLib 动态代理
- 动态代理-->cglib
- cglib动态代理介绍
- cglib动态代理
- CGLIB 动态代理。
- CGLIB动态代理
- CGLIB实现动态代理
- cglib 动态代理
- cglib动态代理模式
- cglib动态代理
- cglib动态代理
- CGLIB 动态代理
- yii2.0-captcha验证码--详细设置
- 【深入理解Java虚拟机学习笔记】虚拟机类加载机制
- 一台电脑安装多个mysql(mysql修改密码)
- 解决BCGControlbar中Ribbon界面主按钮一直显示File的问题
- MRv1 VS MRv2
- CgLib动态代理初步实践
- MYSQL必知必会 学习笔记一
- Android Studio 出现 Gradle's dependency cache may be corrupt 解决办法
- 1.数据结构绪论
- 2017多校6 1002 hdu 6097
- 最小编辑代价
- 星球闪烁高亮
- 沉浸式状态栏的实现
- 串的匹配算法