00:01
好,接下来的话,我们再来说一下,诶买贝plus里面呢,诶,他帮我们提供好的几个特别啊好用的一些这个插件啊呃,那么在说这个具体的插件之前呢,我们还得先简单的跟大家聊一下啊,我们买be里面的插件机制啊呃,因为买be plus它提供的这个插件呢,呃,也是基于我们的这个买贝利的插件机制啊来去做的,嗯,所以说这个地方的话呢,还需要跟大家这个提前说明一下。呃,如果说呃,你对这个买贝蒂里面的这个插件机制啊,还不是很熟悉的话呢,啊,那么还是建议大家呢啊,先回头把这个买贝蒂的插件机制呢,好好的去看一看,然后呢,再回头呢,去看我们的这个啊插件啊,就是我们现在要要讲的这个插件。好,呃,那么呃,这个地方的话呢,我们会简单的给大家去说一下买贝里面的这个插件机制啊,但是呢,我们不会再去深入的诶一步一步的带着你们去看了啊所以说呢啊,如果说诶你听完这个还不是很理解的话呢,那么你最好呢,回头去啊把这个买贝利斯的插件机制呢,好好的去诶研究研究,然后呢,再回头呢啊去看我们剩下面下面的这几个插件,这样的话呢,呃,第一诶你知道它怎么去使用,第二个的话呢,你也能知道它在底层呢,诶是怎么帮我们进行执行的。
01:19
好来,接下来我们先来说一下我们买的这个插件机制啊,我们简单介绍一下。首先啊,买贝四里面的这个插件呢啊,那么它其实就是通过这个ceptor啊,那么其实翻译过来的话啊,它是一个拦截啊这样的一个意思,呃,那么他通过这个呢,可以帮我们拦截到,诶买白列里面大名鼎鼎的四大对象啊,相关方法的一个执行啊,那么根据一些需求的话呢,我们就可以完成,诶相关数据的一些什么动态的改变,好呃,哪四大对象呢,那分别就是我们的执行器对象,然后呢,Statement handler,就是我们的SQL语句。啊,编译器对象啊,然后呢,Para para handle了,Sol语句的啊这个参数处理器对象啊,Result set handle了,那就是我们结果器的哎,处理器对象了啊那么这四大对象呢,啊,我们都是可以通过这个插件呢,诶来去拦截到他们的啊那么具体的原理是什么呢?
02:14
就是我们的这四大对象啊,在这个买杯底层,他在进行创建的时候呢,他不会把这个创建好的四大对象呢,直接给你返回回去,而都会经过一个诶cept.plugging up,那么这个的话呢,其实主要就是啊,要拿到我们当前所有注册过的插件,然后呢,会经过每个插件对象的一个plugin方法,那么目的呢,就是帮我们当前的这四大对象呢,去啊创建出一个代理来,那么将来的话呢,我们给人家反馈回去呢,其实就是一个代理对象。因为啊,我们返回回去代理对象以后呢,他将来再去通过我们这四大对象去进行一些操作的时候呢,诶,其实就相当于我们是代理对象再去做一些事情,那么这样的话呢,我们就可以通过代理的方式呢,诶来去做出一些动态的改变,所以说呢,大家也要记住。
03:13
我们执行四大对象的这个方法呢,诶,我们都需要经过代理来去执行,好当然啊,除了一种情况,就是你没有任何插件的情况下,那那么它是不需要的,好,我们把这个简单的给他去说一下,然后呢,我们再来啊具体的通过这个代码呢,给大家再来简单的去描述一下啊好,那我们就随便找一个吧,比如说我们就找到这个statement了。啊呃,那因为在这个买威底层的话呢,他去创建statement handleler的时候呢,啊,也会同时帮我们去创建出来啊parame handler以及我们的set handle啊这个我们怎么看呢?啊,我们来CTRLT一下,它将来创建的时候呢,会创建一个啊在我们这个base statement handle里面呢,有一个构造器啊,我们来找一下,哎,就这个构造器。
04:00
在这个构造器里面呢,它会帮我们创建出一个这个STEM handler,那么同样呢,大家注意它会帮我们创建primemeter handler以及我们的side handler,好,那我们就随便点进去看我们这个parater handle的创建,好呃,进来以后呢,我们就能看到,呃,它会通过我们的map statement呢去帮我们创建出一个permit handler了,但是大家注意它并没有直接把这个permit handle给我们返回回去,而是经过了一行代码,那么这个代码呢,就是我们刚刚给大家提到的,它要通过我们的intercept train2plug in off,而这个cept train呢,其实我们就可以理解成是一个诶拦截器的执行链对象啊,就是我们这个插件的执行链对象,那么这个plug奥呢,我们可以来看一下啊,我们来。点进来看一下,呃,他就是拿到所有的这个插件,然后呢,迭代每一个插件呢去执行哦,诶它里面的plug方法,然后执行的时候呢,他要把我们当前创建出来的这个四大对象呢,给它传进去,好,最后呢,我们又拿到一个代理对象,再把它返回回去,好,那么其实对于这个plug来讲的话呢,啊,我们也可以来看一下啊,只不过呢,这个inception呢,它就是一个抽象的了,那么实际上我们在这个plug里面做什么事情呢?我们主要就是完成诶代理的这个过程,那么就相当于传进来一个目标对象,我最后给你返回回去的是一个代理对象,那么将来的话呢。
05:26
我们的代理就是我们啊看似呢是使用这个四大对象去操作一些方法,但实质上呢,诶我们是通过代理对象来做的,那么这个代理对象的话呢,诶将来他去执行的时候呢,就会自动诶执行到我们这个cept这个方法中,所以说呢,我们插件主要要做的事情呢,我们是在intercept里面诶去编写的,就比如说你这个插件要做什么事,那么将来的话呢,你就可以在这个intercept这个方法里面去编写你要完成的一些工作就可以了,好,那么这个呢,就是我们。诶,买里面这个插件的一个什么简单介绍啊,那么具体的东西的话呢,啊,我们就结合上我们接下来要去给大家去讲解的这几个插件呢,啊,我们再来具体的给大家去,诶看一下好。
我来说两句