00:00
我们刚才呢,呃,就看到了咱们这个open session的流程,哎,最终呢,我们总结出来就是。返回一。Default。而这个对象里边呢,包含咱们这个。咱们这个。哎,我们经常用的东西,我们都在这里边。每次都提及一下。好,也就是说呢,我们这个。这一步呢,主要就是这一步会创建对象。创建。而这exeor创建的时候呢,哎,大家一定要注意第七步。如果有二级缓存,他会用这个包装,这都不算,我们可以禁用二级缓存。但第七步这一块,它会有一个intercept,哎,拦截器垫,哎plug o来包装我们这个ex,至于怎么包装,我们讲到我们这个插件开发拦截器的时候再。
01:12
好,接下来呢,我们就可以继续来看下一步第三步。第三步,我们拿到这个CIRC session以后,哎,我们知道它是deft circlerc session,我们来看它get member又会做什么工作。继续对吧。重新运行走。打断点好,我们就放行,其他的我们看过的步骤,我们大概放行好。放行。放行呢,这一块会返回一个default circle,我们也放行,它返回一个default。接下来呢,我们来看这个default里边,哎,它有一个get member方法,要用get member,我们来看它做什么事。还是一样,我们创建一个时序图来说它。
02:01
啊。这一块呢,相当于是get,我们来看它。要做什么事?嗯。但是呢,他不管来做什么,我们都知道这个get member最终会返回一个map的这个代理对象,我们就来看他怎么返回的。它先调用我们的get member方法。而我们这个CI呢,我们都知道是。它呢,调用我们这个default circle。的这个方法。然后呢,我们来看啊,它调用get member方法。我们就进入这个get方法,Step into,走。而这个get member方法呢,最终调的是configuration对象的get member。
03:06
Configuration我们也都知道configuration是啥呀?是保存了咱们这个康歌。保存了我们所有配置信息的是不是一个对象啊,诶,它在这里边get member。Get member的时候呢,传入我们这个接口名。我们接口的这个类型。然后呢,我们调用configurational member,我们就进入configurational。Type呢,哎,就是我们这个类型来传入我们当前的default对象。我们代店铺。好进入好,然后呢,咱们这个configuration它获取的时候呢,又是调用member reg get member。有一个member registry叫member registry呢,是咱们configuration的一个属性。
04:04
这个属性我们见过没啊。比如说呢,它调用的又是。他在这儿调用get。而这个get member方法呢?它传入咱们这个type来传入这个type,而这个member方法呢,是从member registry里边。Member registry里边呢,哎,有我们这个。哎,翻译过来这个map,这个是不是叫map的注册啊,诶。这map的注册呢,我们其实之前都见过哪里呢,在我们这个configuration对象。Configuration对象里边保存了我们所有信息,以及我们两个重要的地方,哎,我给大家摘出来了。一个是map的statement,代表每一个标签。
05:01
接下来就是member regry,诶,就是它,它里边有一个knowing maps里边保存了每一个member对应的map proxy。所以说呢,我们就来看摘词get map。他第一步先获取到map proxy factory,因为我们知道map registry里边保存了当前类型里边,诶,你看它就是从no拿的。我们当前类型就是employee member就能拿到这个proxy。所以说呢,最终他会拿到一个这个东西。Proxy。也就是说呢,它是。获取。根据根据咱们这个。接口类型。类型获取。Map proxy翻。
06:00
而我们这个member proxy接口类型对应的member proxy,我们在初始化的那一步,人家configuration里边都有了。好,我们就来看拿到这个以后呢怎么办。拿到member proxy,如果拿不到就告诉你没映射,拿到以后呢,他就调用proxy,哎,Proxy proxy的这个工厂的new instance方法传入我们S。它是拗音斯坦传入了我们这个。Member pro,它的做法就是new一个instance来传入呢,我们这个circle session对象。那么我们就来看这个new音磁,它扭了是什么,走进去。好,我们来看啊。New instance方法的第一步,他先创建一个proxy对象。这个proxy对象里边呢,有我们当前我们要用的这些接口,把接口传进来。
07:02
他会先创建一个。我们都知道member proxy factory,那后来一定是要proxy的。所以说呢,它第一步。在new的时候创建proxy对象。Proxy。Member proxy,而这个member proxy它创建出来以后,我们来看它是一个什么呢?点进去。点进去它里边会有包含CIRC session,以及我们当前接口,以及接口每一个方法的这个映射啊,当前方法对应的啊,我们这个map method,我们后来再说它。而它我们主要看它的类上边,它说它实现了一个接口叫什么。是不是永不开声憨了?Invocation handler呢是我们JDK里边做动态代理需要,哎调用proxy对象我们有一个,哎这个动态代理的时候,我们要传一个硬卧开心看到。
08:07
如果大家对这块还不熟悉,那么赶紧回去复习一下。好,所以说呢,我们现在需要知道它是一个invocation handler就行了。它是一个。哎,能来创建动态代理的好。我们接下来再来看,把它扭出来以后再调用new instance方法,哎,就是它本类的你看啊。传进来。正好大家来看。是不是就是调用proxy new proxy instance啊,诶,我们来看这个proxy,就是我们Java浪反射包下的这个代理类。这个代理类呢,帮我们去创建member proxy,哎,Member proxy传进来,来创建它的代理对象,把这个代理对象返回。所以说这一步最终哎。就是创建一个它。
09:02
第七步。创建map。CY。咱们这个代理对象。哎,把这个代理对象我们创建出来以后。我们把这个第七步呢,我们可以画成这个。创建的呢,最终还是一个诶。创建的呢,其实是它这个。把这个代理对象我们再来看。这个代理对象最终会被返回,一步一步的返回。所以说呢,我们拿到的这个member最终是一个代理。好,这个代理对象创建完以后,我们直接返回。这就是我们get member拿到的结果。返回proxy。
10:04
代理对象。好。那么呢,返回这个member proxy的代理对象,哎,我们呢,最终返回的这个代理对象,大家来看一下,哎,它呢是一个member proxy。那么它里边呢,有CIRC session,我们都知道CIRC session呢是执行增删改查的。我们再来说一下,好,就是这个这个呢,我们把这个流程图我们画出来,返回一个代理对象。第三步。这是按返回。返回。Get map。返回接口的。代理对象。好。我们把这个流程。
11:00
拿过来。好,放在这儿教给大家。然后呢,这个代理对象呢,哎,就长得这个样子。它里边呢,哎,它也是member proxy,它里边又包含了default,所以说呢,这个代理对象能用来执行增删改查。包含了。好,这一步哎,我们就走完了,接下来我们来看这个代理对象如何执行增删。
我来说两句