00:00
下面呢,我们来看今天的内容,今天呢主要讲的就是这个动态代理的实现机制,看他应该怎么用啊,那我们来看我们的讲义1.6节动态代理。这个动态代理呢,他用的是反射机制,在虚拟机执行程序时呢,创建我们的代理的对象,不需要写那个Java文件啊,不需要,它是一种反射机制,是动态创建类创建对象的一种能力。中外代理呢,有两种实现方式,一种叫做JDK动态代理啊,就是动态代理啊,这个词写的不对啊,这个代理不对,JDK代理方式还有一种方式呢,就叫做T械lab动态代理有两种方式,它的实现啊有两种。动态代理的实现方式有两种。动态代理的实现有两种,第一种方式呢,它叫做JDK动态代理,第二种方式呢,它叫做cg lab动态代理,这种方式呢,大家了解知道这个词就行了,我们主要是讲上面这个理解的级别就可以了。
01:18
先来解释一下什么叫做JDK动态代理呢?它是说呢,我们使用扎我反射包中反射包中的类和接口实现动态代理的功能,我们把这个呢叫做JDK动态代理,也就是说使用JDK中自己的类还有方法来完成代理的创建,叫做JDK的动态代理,在这里呢,反射包是是java.light.rely这是反射包那里边呢有三个。
02:02
有三个类,分别是VO handle,还有一个是method,还有是proxy,我们使用这三个相关的类呢来实现一个动态代理功能,它叫做JDK动态代理。那么第二种方式叫做cg lab动画代理呢?首先说c lab是一个第三方,第三方的一个工具库啊,第三方的就是别人提供的一个工具库,他能够创建代理对象CJ lab的原理。是继承还是继承,那汽车life呢,它通过。通过啊,叫继承这个目标类,创建它的子类,然后在这个子类中啊,我们要重写父类中同名的方法,然后实现功能的修改,是这样的。
03:22
进入原理就行了,是继承的方式啊,这种方式是说我们要继承父类。然后呢,在子类中进行方法的重写。重写之后,在重写的方法中来改变这个功能,这是c g lab的动态代理,它的机制是重写啊,这里要注意的是,因为呢cg lab是重写的方式,就是继承,然后重写方法,所以呢,它要求你这个目标类它不能是。
04:03
Final的,然后方法呢,也不能是final的,因为大家都知道final的是不能改的,不能被继承的嘛,所以如果你要用其绝代代理的话呢,它的要求就是你不能是final就可以了。他的要求呢,比较宽松。啊,我们说CJBAB的要求啊,它比较的宽松,应该说c lab它要求目标类比较宽松。啊,只要能继成就可以了啊。要求比较宽松,这个CGLA呢,在很多的框架中使用啊,很多的放假中使用,比如我们后面呢,会讲这个MYT啊,比如说这个MYT,还有框架中都有所使用。
05:18
嗯,都有使用啊,就是说这种方式呢,是在框架里边呢,内部用的,你知道有一种方式就可以了,它叫做c lab,是一个第三方的工具库。它的全称呢,是叫做在这儿。全称叫做code generation library,是一个开源的一个项目,就第三方别人写的,你可以拿来免费使用的强大的高性能的高质量的code字节码的生成类库。它这个运行期间呢。扩展Java类实验接口。被很多的框架使用,那这些spring呢,它就会用到这个t g lab来做这个up,后面我会讲啊,会讲这个up的。
06:09
这是t g lab,原理呢,是继承啊,继承不能是final的。这个LA呢,它的。对目标类的要求比较低,能继承就行了,而且呢效率呢会。高于这个JDK啊,就是在某些方面呢,会高于JDK的效率上。这是c lab,这个呢,做了解就行了,知道有这么个东西就可以了。
我来说两句