2.2、cglib动态代理
举个例子:
2.2.1、创建一个老师即将要来了的类:
publicclassTeacher{ publicvoidmove(){ System.out.println(\"Teacher is coming。。。。。\"); } }
2.2.2、创建cglib代理的实现类:
importorg.springframework.cglib.proxy.Enhancer; importorg.springframework.cglib.proxy.MethodInterceptor; importorg.springframework.cglib.proxy.MethodProxy; importjava.lang.reflect.Method; /** * 基于spring的cglib的继承式 动态代理,*/publicclassCglibDynamicProxy implementsMethodInterceptor { privateEnhancer enhancer = newEnhancer(); publicObjectgetProxy(Class clazz) { enhancer.setSuperclass(clazz); enhancer.setCallback(this); returnenhancer.create(); } /** * 拦截所有目标类方法的调用 * 参数: * obj目标实例对象 * method 目标方法的反射对象 * args方法的参数 * proxy代理类的实例 */@OverridepublicObjectintercept(Objecto, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable { System.out.println(\"cglib 动态代理之老师还没来 。。。。\"); methodProxy.invokeSuper(o,objects); System.out.println(\"cglib 动态代理之老师已经来了 。。。。\"); returnnull; } }
2.2.3、创建测试类:
publicclassTestCglibDynamicProxy{ publicstaticvoidmain(String[] args){ CglibDynamicProxy cglibDynamicProxy = newCglibDynamicProxy(); Teacher train = (Teacher) cglibDynamicProxy.getProxy(Teacher.class); train.move(); } }
总结:
文章插图
文章插图
【简述代理设置的模式种类 如何使用代理ip】三种代理方式对比
推荐阅读
- 如何设置连接wifi优先顺序播放 如何设置连接wifi优先顺序
- 安卓手机门禁卡设置方法 安卓nfc功能怎么开启
- 附:小米12手机返回键设置具体步骤 小米手机怎么设置返回键
- yy语音如何设置按键说话 yy怎么调语音按键
- 怎么不压缩文件夹设置密码 怎样不压缩给文件夹设置密码
- iPhone手机设置DNS步骤 苹果手机如何修改dns的ip
- 设置手机手写笔画粗细方法 手机手写笔画粗细怎么设置
- 微信怎么设置自定义来电铃声 微信怎么设置来电铃声
- iphone手机设置简体手写步骤 苹果手机输入法怎么切换
- 电信卡怎么设置网络快一点 电信卡怎么设置网络最快