00:00
好,我们来继续,前面呢,我们看到了这个啊,我们being创建之前,我们这个aware being post process的,哎,两个方法就在这一块进行执行,那么完了以后呢,我们来给它返回。好,返回我们这个B呢,相当于第一步先在B创建之前先来,哎,给b post processor一个返回代理对象的机会,但是呢,我们现在这些没有返回代理对象,接下来我们进行下,如果前面的咱们这个aware process没有返回代理对象。没有返回代理对象怎么办呢?那接下来就执行下边的流程,下边这一块流程呢,哎,有一个叫do create b创建B会返回一个B实例,那么这个就是咱们这个B应的创建流程,哎,它呢在这就会来调用,调用我们这个第四步调用四,调用四的什么呢?就是我们这个第四步,就是我们这个创建,而整个创建B的流程又是什么样的,来进来可以看一下step into,好,这有什么B,咱们这个B的包装和我们往进走,然后呢,这有一个叫create being instance,创建being实例,好,创建being的流程的第一步先是创建,我们把这个叫创建并应实例,创建并应实例,然后这一块呢,如果这个方法调完,我们这个比应对象就出来。
01:44
来了,但是呢,我们来看一下整个并实例的创建,它又是怎么样的一个流程呢?来step into into进来,好这有呢,解析一下我们要创建的这个比的类型,这个类型呢,好先是空的,空的呢我们往下走,哎,它这是按找factor muscle的name,哎这是按照一个工厂方法的名,为什么叫工厂方法呢?因为我们这个录对象,我们是这么来写的,录呢是利用咱们这个ex,利用调这个方法创建对象,所以呢这方法的方法。
02:23
好他呢,相当于拿到这个方法就来执行我们这个工厂方法,我们可以带平图进来,你看啊,这一块就是整个执行过程了,拿这么构造器解析的等等等等,好我们就直接执行,执行好这个呢,我们补录对象就创建出来了,相当于我们这一步就利用利用工厂方法,或者呢,我们这个对象的咱们这个构造器等等等等方式啊,创建出们这个比实例这个病应对象就创出来了,我们来放行,放行好放行这些啊这些之前的这些反射创建的流程我们就不看了,好直接给他放行好这一块呢,毕竟实例,哎,我们这个补录对象就创建出来,只不过补录对象刚创建出来,哎空空如也什么都没有好,但是呢,我们这一步我们就算是调完了创建,并竟实例好,接下来呢,我们再来往下走,它这一块呢。
03:23
又有一个叫post process,又来允许我们这个后置处理器来修改咱们这个定义,所以说呢,这个创建完以后,第二步,第二步,第二步呢,走到这它是来,它是来调用这个方法叫apply post process,这个方法又是来执行哪些后置处理器呢?能可以进去来看一看就行了,走我into进来,其实呢,就是来看我们拿到你所有的后置处理器挨个遍利,如果你是watch的being DeFinition post processr c,它这一块就相当是来调用mer being DeFinition post process的什么方法呢?哎,就是来调用它的咱们这个叫post process的方法,比如说每一个后置处理器它都有啊,它这。
04:23
这些方法的执行时机都不一样,比如我们这个后置处理器,它是在前面啊,在毕竟创建实例之前,它会触发这些,而我们这个方后置处理器呢,它在并竟创建实例对象以后,它又来执行这个方法,所以说大家如果要用啊我们以前讲的这些后置处理器,你来区分一下后置处理器呢,哪一方法合适执行,哎这块呢,我们就来注意一下,都要用这个的这个方法好,那么呢,接下来我们就来直接让它我们就放过就行了,我们有知道这一回事,好往下走,然后呢,他这一块啊什么啊,拿到咱们这个要什么单实力的要暴露的,毕竟等等等等把这毕竟呢什么按的深度筒,这都是添加一些缓存,我们就直接放过,大家注意这块这个环节,这个环节呢,它叫初始化,毕竟实例初始化being实例的第一个环节叫populate being,哎,这个呢是它的意思是为being赋值。
05:21
哎,我们第五个环节,然后呢,我们在这儿,哎,创建并实例,我们创建出来了,接下来呢,我们来看啊啊我们现在现在还都在这个do create并方法内,那我就把这个应该写在这,好在方法内我们在前边呢,先创建出了并实例,然后呢执行了后置处理器,然后我们接下来看,我们这接下来比影实例,创建完popul b啊对比影进行赋值。为B的属性赋值,它的作用就是B属性赋值,而整个赋值工作又做了什么活呢?我们再来进来,好赋值工作,Step into进来,然后呢,他拿到我们要赋的所有的属性的啊,Property values,我们属性所有的值,只不过我们没啥属性啊,如果有它会拿到很多来我们来往下走啊,这还没赋值值拿到一些值,我们要进行赋值,那注意啊,那还没赋值,没赋值之前呢,就会有这些操作,它来遍历所有的后置处理器,就是这些操作,它所有的后置处理器来看你是不是这个后置处理器,比如说相当于第一步复置之前,这相当于咱们这个后置之前,复置之前它第一步来拿到,相当于拿到咱们这个这种类型的后置处理器,执行这些后置处理器的什么方法呢?我们来看一下,哎,就来执行这些后置处理器的叫啊。
06:51
Post process方法执行这些方,比如说这个后置处理器的这个方法就在这执行,那我们就来直接给大家放过就行了,好来一点一点放,你看所有的后置处理器,如果有就来帮你执行这个方法等等等等,好就直接给大家放完。
07:15
好,那这个后置处理器的这个方法,就是在啊我们这个属性还没赋值之前,我们在这调用完了以后呢,拿到我们这些东西走走,你看啊,这一块呢,都是我们的这些属性啊。拿到我们这些属性,我们来再来往下走走,你看这一块呢,有检查一些其他的啊,有检查一些我们这些有没有什么额外的这些信息,包括这一块又过来你看啊,它又是第二步拿到后置处理器,拿哪些后置处理器呢?还是这些后置处理器再来拿到还是这个后置处理器,他接下来又要执行什么方法呢?他又要执行我们这个叫post process啊property values,它用来执行这个后置处理器的这个方法,大家注意啊,即使是执行后置处理器的这两个方法,我们属性都还没赋值,什么时候赋值呢,你就让他先执行吧,好,整个执行如果是执行这个方法,我们来可以看一下啊,这个后置处理器定义到用这个方法,这个方法呢,返回一些property values,也是说我们属性里边要用应用的这些值,它就。
08:30
会帮你把这些值哎,应用到属性中,应用到这B的属性中,好,我们来直接放行,放行好你看啊,最后一步才叫play啊,Property values应用咱们这个Java b属性的值,应用咱们这个Java,咱们B属性的值这一块呢,相当于才是为属性,为属性为属性利用咱们这个方法等set方法等进行赋值,这个步骤呢,我们就不进去看了,就是利用反射调塞方法之类的,好,这是咱们整个赋值R。
09:11
从这开始,下边的方法才是赋值,这以前这都是赋值之前啊,赋值之前它就帮我们来调了咱们这个post process的这俩方法,好,这个赋值,那赋值我们就让它做完吧,好走走我们这个对应的属性赋值我们就完成了,完成了以后呢,属性赋值完了,接下来这一步叫initial initialize being初始化B这个呢,我们之前也都看过,我们再来复习一下,好,这是popul being being赋值,Popul being完了以后呢,接下来是我们这个B音初始化啊,创建B应实例,创建之前执行这个后置处理器,完了以后再为属性赋值,赋完值以后,赋值的过程又执行一些后置处理器,再来进行B音的初始化,初始化啊,就是它执行的这个逻辑初始化又干了什么活呢?来看一下,To进来。
10:12
进来以后呢,它在这第一步evoke aware methods,执行我们这些aware接口的方法的作用是执行aware接口的方法,然后这些叉叉叉aware,这个叉叉叉aware呢,我们之前有用过一次,哎,比如我们之前在我们来看啊,我们之前呢啊,应该有一个有一个组件,比如这个组件这个卡。我们有一个叫person组件,还是什么组件来着,Dog。好,我们这个do组件呢,要用IC容器,我们就是实现了application aware这个方法呢,就会把C容过来,所以呢,Aware接口的这个执行类似于这个aware接口,哎,就是在这aware先来执行aware接口的方法,来看它怎么执行走,相当于判断你是不是这些aware,我说呢,你这些aware接口的方法,这个aware接口包括呢这个aware。
11:19
包括这个那呢,如果你的啊组件是实现了这些额外接口,它就会利用呢,咱们这个这一步帮你把这个接口的方法进行回调,那我们没有,那就直接放过啊,第一步执行这些aware尔接口的方法,好接下来呢,再来看啊a aware接口执行完了以后呢,它在这又来一个a play being post processor,哎哎,他来调了这个方,这个方法呢,我们以前也回忆过,好并初始化之前,它的第一步先来执行呃,Where where接口方法,然后呢,他在这再来执行执行执行什么呢?执行我们这些后置处理器初始化之前的方法,后置处理器初始化之前,那么这是哪些后置处理器呢?我们来点进来,哎,其实就是我们这些。
12:19
所有的后置处理器都来触发post process内session方法,我说呢,那现在呢,就是用默认的门,哎,就这个后置处理器,这个后置处理器它的它的哎,咱们初始化之前post process before initialization就会被调用好,这是咱们我们后置处理器初始化之前方法的调用机在源码的这个位置,我们来看啊,那就直接让它调,调完了以后呢,它在这in work in need my执行初始化方法,初始化方法,而执行初始化方法呢,我们以前呢,也都进去过,我们再来回顾一下执行初始化,走初始化的执行呢,它就来看,因为我们说B应的这个初始化方法,我们有很多方式,第一种呢,实现这个接口,比如我们以前写过写过。
13:19
应该是哪个比进来我们来看啊看它好,你看我们这个看它,它呢实现了这个接口,这个接口呢,规定了一个这个方法,这个方法呢,就是我们这个初始化方法,哎,所以说呢,在B应如果你是这个接口,它就呢可以帮你来执行这个初始化方法,当然我们除过这么来指定初始化,那么还有一种方式。我们再给IC容器life circle,你看我们可以来手工的来指定啊,比如我们这个cut一下,我来指定in方法是初始化,是销互就是等等等等啊,这就是我们在执行初始化方法,哎,你看它判断你是不是initial时lesson lesson b是否是这个B接口的实现,如果是呢,他就来执行咱们这个初始化执行接口规定的初始化啊,如果不是,如果不是的话呢,他就来看我们来往下走啊,我们现在也不是我们的补录对象,他就来看你是不是自定义了初始化方法,哎,我们现在呢,也没有什么初始化,这就是呢,第二步看是否自定义初始化方法啊,如果有的话呢啊,他就来给你这么来执行初始化,当然我们没有自定义啊,没有自定义啊,所以我们就直接过去。
14:43
过去就是呢,这一步它是来执行初始化,相当于在这一块会帮我们把我们自己的初始化方法回调一下,哎,我们自己规定的初始化执行完了以后,我们再来看,哎,它的下一步就是apply being post process after,应就初始化之后这个方法,它的作用呢,是执行咱们这初始化之后,哎,这是后置处理器,后置处理器初始化之后的方法是哪些后置处理器呢?点过来来看一看,就是我们这些post processor,哎,它来利post process,它来执行这些post process什么呢?Post process after English就是执行咱们这个初化之后的方法,这就是我们这个B的整个初始化逻辑,诶在这后置处理器初始化之后,执行完了以后我们放行。
15:43
好,我们鼻影的初始化我们就调完了,调完了以后呢,后边哎接下来,接下来呢,他在这就来,哎获取单式利鼻啊,因为我们这个B都已经创建好了,那他就,哎直接把我们这个B我们来看啊,他在这获取,当然还是先从缓存中获取,我们现在创建好缓存中还没有我们这个being对象是已经有了,接下来呢,他来看啊,这叫register Dis being这个呢叫注册咱们这个being as dispos,哎这个disposable呢,我们以前也用过,就是呢,它是来执行being咱们这个,哎注册咱们这个being的,我们这个销毁方法的。
16:25
这个执行完了以后,它来注册来看啊,现在呢,不是初始化了,是咱们这个do create艾b do艾B呢,它初始化执行完了以后呢,这是注册咱们这个B的,咱们这个销毁方法先是注册啊,当然销毁方法是在我们容器关闭以后它才调用的,它只是呢把这销毁方法注册一下,看你呢是不是我们实现了这个销毁的这个接口的,因为我们之前呢,也给大家看过一个,比如这个看看,诶如果你销毁你可以实现这个接口,但这一块呢,相当于提前把这些东西都注册过来,我们就直接放行来放行啊,放行好,然后呢,我们这个do create b就算是返回了一个B实例,哎,我们经过很多步骤把这个比就创建不出来了,哪些步骤呢,就是我们列举到这个,我们要创建比,要创建比呢,它先创建出比引对象。
17:26
来调用你这个类型的后置处理器,再为B进行赋值,包括赋值前后也会调用你的后置处理器,赋完值以后呢,再调用你初始化,包括初始化前后也会调用你的后置处理器,整个整完以后,我们B应对象就创建完了,哎,我们第四大步,我们B应对象的创建,哎,这个being的实例你就创建出来了,走返回,诶,我们这个create being就创建出来了,走,哎,我们拿到的我们这个比应的对象,哎,我们来能看到我们这个比应对象呢,就会被创建出来,那再来放行。
18:04
走放行,注意啊,如果B对象创建出来以后呢,它这有一个代码叫and single,只要你并对象这这个创建出来,它,它就会添加到单实力并里边,你看就是给这个objects里边,把我们刚才创建的这个B再添进去,哎,这是我们所有的单式里拼,以及register所有注册的单式里B为说呢,哎,将已创建的B第五步将创建的BB添加到添加到咱们这个缓存中,所谓的这个缓存我们以前用过就是这个单实例B的缓存,它第一次就是从这个object里边来拿的,放在这放在这的好处,以后你拿,那我就直接从这个map里边拿了,那正好我们要说的一句话就是啥,什么叫OC容器啊,其实IOC容器就是咱们这这些map,就这些map这个map里边呢,保存了我。
19:04
创建的所有组件以及IC的其他信息,各种各样的map啊,有非常多的map,很多的map多的我们这map里边保存了,保存了咱们这个单实力比影,包括呢,环境信息信息等等等等,所以说呢,所有的这些整个map就构成我们大的LC容器,容器里边保存所有的组件,你以后来获取组件,其实就是从这些map中来拿东西,哎,这就是我们说的容器的咱们这个鼻音的创建过程,哎,我们来往下走,来填过去啊走,我们这个毕音的实例,我们就创建出来了,直接返回好直接返回,诶返回B实例走create b,我们就算是创建好了。
我来说两句