00:00
嗯,OK, 那我们来看一下,来调试一下啊,那么我们直接就断个点断到这个,呃,历史当中来跑一遍,我们先来看一下这个情况,是不是如我们图上画的这样子,首先来看这个。呃,Ing process process也就是我们定义的这个,一个个来看看,首先看这个啊,Process的并词当中,它目前来讲的话,就是执行到这一步的时候,它里面应该说等于空就什么都没有啊来我们来看一下。那它里面是0,好,我们再来看一下这个并是map,也就是这个并map啊。这个当中啊。你这个比得是map在哪里?好,这里面呢,我们用一个花块来。给他做一个备注。好,这个阶段是表示的是。
01:00
没有。扫描之前。它里面。它里面应该有一个什么东西啊呃,内置的,那么其中最重要的就是我们这个CCPP啊,除了内置它还有一个注册类,就是我们的配置类啊,配置类也就是我们的a appcn的反APP con这个类啊。大写的,嗯,他就是这个情况。这个呢是扫描之后的。也就是说他是直行。完了我们的什么CCPPP的这个什么样的子类的方法,也就是完成了扫描之后,它应该会成这么一个情况,那么我们来看一下是不是啊。好,先看这个并map,并factor当中的这个并map,它应该就是6个,6个的话,其实我们说的这个CP好理解,这个APP看这个其他四个类置的,我们现在不关心也讲不到,所以大家不需要去呃关心了,那么就大概这个情况,好,这个我们已经呃知道了,我们再来看其他的一些变量的一些状态,第二个我们从这个往下看啊,这个顺序RI的process process当中的话,那么现在来讲的话,它应该是有一个啊,这个RI process process当中,因为它存的是我们直接通过API调用的,它里面存的是一个B啊,也就是我们这个里面应该有一个B,就是当我们代码执行到这一行的时候,执行到这一行的时候的话,上面代码是不是已经执行完了,对不对,所以说呢,就是一开始的话,这个历史当中的话,有一个呃,有两个嘛,B跟C嘛,然后呢,他就通过怎么呃,通过便利。
02:39
通过这个for循环便利的时候的话,把他们放到了这个。进行了一个判断对不对,判断是不是子类,如果不是子类的话,这个B就不是,然后就把它放到这个RI当中,所以这里面就讲到了有一个B啊,我们来找一下是不是啊,这个叫RI,呃,在这里也有一个看是不是B这个对象呢,没关,没问题,好,我们再来看下面这个变量,也就是我们这个就什么registering process当中,他应该有一个C,为什么它会有个C呢?因为它这里做的一个呃,放循环拿到BB的话,我们刚刚进到L当中把它存进来了,那么C的话,它应该是执行完了C的方法之后的话,然后呢,把它放到这个里面来,所以这里面找到了有一个C来看一下,并且的话,我们代码执行到这一行的时候,C的这个子类方法已经执行完了,我们来看一下是不是,你看他打印的这个什么呢?C对不对,就是它是有一个子类,并且执行的什么来着,子类的这个post process bity方法啊,因为它的来源是API的,对吧?好,那么这代码执行到这一行就是它的一个呃意义,那么这个再往下走的话,那么就是我们这个,呃,Current里面它应该是为空,现在里面什么都没有,因为刚刚6出来嘛,它里面应该是什么都没有0啊好,接着往下执行,通过这个get LAS for type, 我们已经刚刚讲过,从。
03:43
从这个并map当中去找所有类型为这个类型的这个病的名字,那么找出来的话应该有一个CCPP,那我们来往下走看一下是不是好一走,那么呃,代幕往下找,那么找出来的话,它应该是有一个的来这不上是一个,你看它是不是CPP啊,你看是不是这个来coniggu as, 呃,并impossible,只不过这个名字是是不是自己类取的这个名字啊,我们已经知道这个反正就是CCPP啊好找出来之后的话,对它进行一个便利,由于只有一个便利的话呢,首先判断这个它是不是实现了pretty all的接口,我们刚才看过源码了,就是我们这个CCPP的话,我们可以看到这里面写的它是不是一个实现的po的接口的,对不对,看这幅图吧,所以说我说一定要结合这幅图来看啊,好,他就是是的,是的话会进入这个当中来,进入这个里面就把它ADD进去,那么ADDDD完了之后,你面会多了一个什么CCPP对不对,也就是它,你把它展开的话,它里面多了一个configuation class possible, 这里是CCPP这个对象啊好了,然后呢,再把它ADDDD到这个呃当中去啊,这个我们刚刚看到是0对不对,如果他执行完了之后,变成了一个就是CCPP这个类型的一个啊,你看它的。
04:41
嗯,找到这个process并啊里面一个他能字不上名字是不是CCPP这个名字,CCPT名字比较蛋疼啊,是这个名字啊好那么存完了之后的话呢,呃,他就现在还没有执行嘛,好代码往下走,走的话,数的排序不需要关心,好再往下走,也就是说他会进行一个合并,所以接S的当中的话,来我们来看一下。
05:00
流接当中刚刚是不是只有一个,呃,这个C啊,好,我们再来看一下这个接设当中是不是只有一个C来当这行代码执行完了,里面会多一个B对不对?好,再往下执行,你看它会多一个B啊好。呃,多一个,多一个不是必要啊,多一个我们的CCPP对不对啊,这是我们的CCPP并没有执行完,那么没有执行完的话,我们再来看这个并点map当中,因为他在这个里面去执行的,对不对,还没有执行完,我们看这个并得分B表当中,它还是6个没有完成我们的这个扫描,那还是6个在这里面,嗯,好,当这样代码执行完,我们来关注一下往下走好了,那么它会多哪些东西呢?我们来看一下多我们的ADH,也就是说呢,6个加了几个呢?12345,它应该变成11个,我们来看一下是不是11个,12个多了一个,谁呢,多了一个H。H在哪里,我看一下。而且还还多了一个I啊对对,我这个I刚刚没有拿过来,Sorry啊,不小心忘记了。把都拿过来吧。
06:00
问题不大,刚刚漏掉了啊。就是就是你要成为一个spring这个专家对不对,或者说一个嗯大师吧,就是你你你得也像我这样子对不对,去分析,虽然有一些呃,比如说有一些问题对不对,像刚刚就漏了个I,但至少我的分析思路是对的,也就是你你这样子可能就是因为你某些呃呃不小心啊,或者说一些粗心大意啊,漏掉的某些东西,但是你整个这个分析的这个这个这个这个套路啊,包括分析的这个这个方向都是基本上是呃正确的,那么这样子其实就相当真的就是你如果想就是说学习不对不对,就是要达到这样子就好一点,对不对,就方便你去看懂其他源码,所以说。嗯,怎么讲呢,这个图为了画好看一点,我就这样子了。好吧,嗯,那就这个啊,我们来看一下是不是的ADE hi, 这是多出来的对不对,它完成了扫描了ADE hi嘛,好了,那么并且我们就说明了我们这个C的呃,CCPP的指类方法执行完了,被他完全扫描好了,然后就把它再把它clear,那么一旦clear的话,那么它里面又什么都没有了,所以说这个东西就被又被他给删掉了,就是这个呃,Current当中。所以说什么叫。
07:05
当前存储当前需要执行的,懂了吗?就这一次需要执行的,然后呢,分批的话,那么分批现在还没有体现,你看它下面又会去往里面去ADDDD的,我们可以看代码了,因为ADD的这是这是我们代码现在执行到这里对不对,ADD, 所以它是分批的,为什么要分批,现在也懂了吗?因为你这些那什么ADEFHR这里面东西,你如果不只,如果你不分批,他一次是执行不了的,对吧,做不到一起执行,现在应该也懂了吧,好,那么这个通过代码调试完成的一个东西啊,那么接下来我大家再进行源码一个分析啊。
我来说两句