博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CGLIB 普通用法
阅读量:6243 次
发布时间:2019-06-22

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

  • 定义拦截回调, 实现MethodInterceptor接口
package proxy;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy;import java.lang.reflect.Method;/** * @author Mr Morning * @date 2019/4/30 08:54 */public class CglibProxy implements MethodInterceptor {    @Override    public Object intercept(Object obj, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {        System.out.println("before invoke");        methodProxy.invokeSuper(obj, args);        System.out.println("after invoke");        return obj;    }}复制代码
  • 定义被代理对象
package proxy;/** * @author Mr Morning * @date 2019/4/30 08:56 */public class Run {    public void run(){        System.out.println("runing......");    }}复制代码
  • 测试
@Test    public void testCglib(){        Enhancer enhancer = new Enhancer();        // 设置被代理类        enhancer.setSuperclass(Run.class);        // 设置拦截回调        enhancer.setCallback(new CglibProxy());        // 创建代理类        Run o = (Run) enhancer.create();        // 判断是否为代理类        boolean is = o.getClass().getName().contains("$$EnhancerByCGLIB$$");        System.out.println(is);        o.run();        System.out.println("end");    }复制代码

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

你可能感兴趣的文章
Web应用三种部署方式的优缺点
查看>>
python爬虫——绕开杂乱无章的代码和堵住请求的302异常(2)
查看>>
static易错点
查看>>
js获取当前日期(年月日格式)
查看>>
LeetCode【217. Contains Duplicate】
查看>>
EBook
查看>>
单词加密
查看>>
【转】关于使用GUID和Identity做主键的一些思考
查看>>
oracle入坑日记<六>自增列创建和清除(含序列和触发器的基础用法)
查看>>
JS框架设计之主流框架的引入机制DomeReady一种子模块
查看>>
js失效的原因及解决方式
查看>>
heap堆内存不足
查看>>
scp命令
查看>>
02-Java中的对象和类
查看>>
if 判断语句
查看>>
tornado+websocket+mongodb实现在线视屏文字聊天
查看>>
如何使用VSTS做压力测试
查看>>
生成树计数算法
查看>>
VS10_慢_优化
查看>>
二维数组赋值
查看>>