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】三种代理方式对比
- 设置取消iPhone屏幕自动旋转方法 苹果手机旋转屏幕怎么关闭
- 花式手机锁屏密码的设置 九宫格万能解锁图案大全
- 华为手机按键震动取消方法 华为按键音怎么设置开关
- 境外电话拦截功能设置教程(分分钟钟拦截境外骚扰电话
- 微信怎么设置自定义来电铃声 微信怎么设置来电铃声
- 苹果手机怎么设置隐私相册 苹果手机软件加密怎么设置密码
- 手机网速慢怎么解决OPPO 手机网卡怎么设置网速快
- 解除电脑自动关机设置 取消定时关机命令win7
- 苹果iPhone出现闪退解决方法 苹果出厂设置还原闪退
- 怎么样给u盘设置密码 如何给U盘设置密码和名字