00:00
呃,3个点吧,断到那个。在哪里呢?搬到这个地方啊。嗯,来跑。呃,基于我们前面源码分析啊,一往下走找到4个啊4个嘛,CCPP1,那么我们来看第一个CCPP是不会进的啊,你看这个结果你一执行它,它应该返回的是一个错啊。是不是因为它已经存在这个里面了,这个就毋庸置疑,你可以看里面就只有一个嘛,对不对,就是我们这个CCPP嘛,好,然后加了一个不的话就是force force, 我后面这个代码就没有意义了啊,那么就不会走这个if服好了,接下来第二个,第二个就是我们的D,我们来看一下是不是D啊来DD1的话,他首先这个结果肯定是返回来是什么样的啊,Force我后面就不再去搞了,现在给大家看一下啊,Force对不对啊,加了个不置to,然么它是不是实现了这个,呃,这个接口,那么肯定不是,那么这个if服也不会进,它没有实现P的,没有实现word的接口嘛,好往下走,那么就是我们的什么FF同样的情况不再分析了,好,这个是来到了ii的话,它就会怎么样呢?这个结果就会成立,因为I确实实现了po o的结果,它就间接实现了O的结果,好吧,好,那往下走,那么把它放到这个里面来,那么这里面会多一个I啊,往下走,你看这个I的话,应该在这行代码之前它就打印的啊,我们把它给停掉吧,它还有一个东西没有分析到,我们直接断个点上面这个地方就可以了,好吧,来吧。
01:13
比如说在这行代码之前,就是I能够进来嘛,来I进来了嘛,这个时候的话,我们可以看到后台是没有打印I的,它没有被实例化,而且我们整个这个single of这当中单当中是没有它的啊好,我们看这个整个这个befa容器当中,我们把它展开走啊,或者我们可以看那个那个大的那个地面吧。嗯,这里面看不到了一个大的对象,我们就看这个当中,这个single objects当中,Single object当中,它是应该没有这个I这个对象的,我们找一下看它在哪里啊。在这里啊,他有5个,有些是不是类似的,大家不用关心啊,他绝对没有I,但是这行代码执行完了之后的话,我们来看后台,首先他应该会打印一个I已经被实例化的,那因为这个I里面有个构造方法,对不对?呃,你调用get bin方法,我们来看get b方法在哪里调用的呢?就在这里面,你调用get b方法,首先第一个spring spring会去走这个I的一个,并且生命周期把它给实例化,并且呢,实例化之后把它放到这个单体当中啊往下走,哎,我们来看,首先这个I在里面了,它已经存在这个单体当中了,这个single的object,就是我们很多基础不好的是不是的那些,呃,就你如果实spring基础不是很好的话,就是你们通常理解那个十分容器,就是我们通常讲的那些病啊,你被实际化好之后的话,你放到哪里去了,全部是放到这个single objects当中去了,所以是这个意思,但是这个single的object值严格意义上来讲,它不叫四分容器,严格意义上我们把它称之为叫做单力值,并且我们可以看到I的各种方法也打印了,就是我刚刚想过的验证这个东西好了,然后的话再把它放进去的话,那么这里面就会多了两个啊,就是这里面就有两个,一个是I,一个是CCPP,对吧。
02:42
他们两吧,I和CDPP吧,没有问题吧,好,然后呢,我们再来看I的一个执行,我们把这个地方先给它给呃可定掉吧,然后说到排序不需要关心,然后这里面一放的话,就会多了三个对不对,C和CPP以及I,我们来看一下C和CCPP啊CCPP以及I是不是好in work一执行的话,那么I就执行完了,那可能I了,它是一个S并它实现了啊,就是po的接口,并且呢,它是子类方法了,这个方法来源它是因过注解的,因为它为什么这个时候执行呢,因为它是注解提供的,注解提供的必须依赖于我们这个CTPP的一个啊呃执行就他的一个回调之后去完全扫描,所以把这个I给扫描出来,然后呢,在这个地方在这边10分钟找出来去执行,好,肯定了之后,好,接下来我们来看一下我们整个这个呃当中的一个情况啊,是不是如我们图像画的这样子,这个里面两个,我们刚刚其实已经看过了这个地方呢,呃,再看一下也无所谓嘛,对不对,因为有的同学,呃对这个成元宝可能技术比较差,经常会那个我们这里面再去给大家讲清楚啊,呃,这个处已经处理过,里面的话,这是两个。
03:43
啊,一个是I,一个是他,嗯,为了防止重复执行啊,然后我们再来看这个re当中就一个B,还是里面就有一个B呢?啊,这个RI是干嘛的,我们还没有说清楚啊,呃,他的最终目的是存储的,直接实现的这个负类的,这个我们说的是为了再次执行负类方法,那这个呢,我们还没有讲到啊,大家不用关心,反正这里面就有一个B,好然后再来看这个逻辑审批三个对不对,看看是不是三个CCPBI来CCPP和I没有问题啊,他们就是他们的负类方法还没有执行嘛,先要把它保存起来,方便将来去执行负类方法,好,然后代码接着往下执行,然后呢,就是我们的卡当中,也然这里面是应该0,因为它已经可列掉了,对不对啊,我刚刚这里也写的注释,在没有列照之前的话,它里面就有一个I,那么现在大家可列掉了,这个I就没有了,好了,这个情况大概是这么一个情况,那么里面的话,我们刚刚也看到的就是这个这个list史当中依然是两个,因为你没有清除过它这个list史当中啊,我们也可以看一下这个例子,当依然是两个嘛,他们两个还在这里嘛,对不对,B和C嘛,所以整个这个图上呢,就是如我们画的这样子,嗯,没有问题,好,这样就调试完了,执行完了,我们带呃,Order接口的。
04:43
那么呢,嗯,这里也解释了我们这幅图上的这个顺序了,好,CCCS, 我们解释过了,CCPP是内置的is为什么是第三个也解释,因为spring源码当中它的一个大体的呃呃呃,原则是先执行API提供的子类的子类方法,好执行完了之后再执行spring内置的,执行完了十分内置之后的话,那么在去执行什么通过十分内置啊呃呃,执行完之后扫描出来那些那么那些的话,他有一个大表演,则先执行实行的。
05:12
Po的接口的就是这个I,所以I是排在第三名的,就是我刚刚为什么你你你同学们还有印象,就是我刚刚把这个图画出来之后,我就通过这里去把这个顺序啊,呃,去去给他怎么样的这么写出来,就为什么可以写出来的话,就是这个大体的原则,你听完这些个之后,你把它记在心里之后的话,如果我给你这幅图,你也可以把它分析出来,就这么个原则啊,执行的po的接口的啊这个意思啊,好了,那么我们,嗯,接下来再去分析这个代码还没有讲完啊,这个代码是相当复杂的,后面的越来越复杂,等下还有这么多这么多,这多这么多,我们逐行把它讲清楚好吧,啊行,那么这个源码分析到此就可以了,我们接下来看第二个视频。
我来说两句