00:00
啊呃,下个话题我们来说一下病的生命周期啊,这个的话我们也得好好的去研究一下,呃,首先给大家去说一下什么叫做生命周期啊,什么叫做生命周期啊,从念到哎,就是这个,这个应该叫什么佛系的说法是吧,就是从无到有,再从有到无的过程,是不是啊啊,这就是一个生命周期啊好,那么简单给大家去说一下,就是因为我们一开始就说过,这个LC容器呢,是帮我们来管理这个病的,对吧,包含它的创建,诶,它那些什么应用啊,就怎么去使用这个病,怎么帮你去做注入,以及最后呢,我要把这个对面病对象给你销毁,这些事情呢,都是交给这个LC容器来做的,那么其实我刚刚描述的这些过程呢,就是它的一个生命周期,好,那我们一起来看一下,呃,LC容器可以管理病的生命周期,并且呢,允许在B的生命周期内特定的一些时间点去执行一些什么。
01:01
指定的任务啊,这个这个是我们可以去做到的事啊,一会的话给大家去演示一下,然后呃,默认的情况下啊,Spring LC容器对B的生命周期啊,分成了这么几个阶段,大家能数出来12345总共五个阶段,哪五个阶段呢?我们来分析啊,第一个阶段就是我要通过构造器或者是工厂的方法去帮你创建一个病的实例,那么我们也知道通过构造器,那就是我们一开始讲的那个反射的方式嘛,对吧,如果你要通过什么呀,通过这个工厂方法的话呢?啊,其实我们可以把那个犯罪病呢,就是认为这个工厂方法对吧,那么其实除了这个犯罪病的话,我们也可以通过就是真正的一个工厂来去创建病,只不过这种方式没有给大家去讲啊,因为他用的特别特别少对吧,你了解一下就可以啊,反正总之就是第一步肯定是要把这个对象先给它创建出来,理解吧,创建出来对象以后呢,诶,我就可以给这个对象的这个属性注入。
02:01
值或者说呢,它的属性是引用类型的话,那么它要去引用其他的一些病,对吧?说白了就是调用你的赛制方法了,能听懂吧,创建法对象以后呢,给你的对象的属性赋值,那么赋完值以后呢,大家注意它还有一步就是要进行一个初始化,而这个初始化呢,是我们自己要去要做的一件事儿啊,等它初始化完了以后呢,那么实际上这个病列上我就给你准备好了啊,你就可以直接去使用了,那么当你使用完成以后呢,当我们的loc容器关闭的时候,那么这个B对象它就被销毁了啊,所说呢,这个就是我们B的生命周期它的五个阶段理解吧,那我们来看一下啊,在这几个阶段里面,第一个阶段要构造器,构造器是有的,第二个阶段调塞的方法,赛的方法也是有的,第三个阶段初始化方法有没有?
03:00
没有吧,我们到目前为止你看到过初始化方法吗?没有,说出了这个方法是我们要自己去写的,好第四个阶段并可以使用了,对于使用来讲,那也是我们能操作的,比如说我就输出一下,这不就使用了吗?对吧?啊,也是可以的啊,好第五个阶段被销毁了,也就意味着他要调动我们的一个销毁方法,有没有没有没有,所以说呢,对于销毁来讲,我们也需要自己去定义这个方法。啊,但是呢,呃,不管初始化也好,或者效果也好,都是你自己写的方法,那么你就得告诉这个sport的loc,这是我帮你提供好的初始化方法,这是我帮你提供好的消费方法来,因此我们就需要通过两个配置,一个是in it method,一个是tra method来去指定一下它的初始化和销毁的方法,能明白了吧?OK,那么我们把这几件设知道了以后呢,来,接下来我们就下面的暂时先不看了啊,这是我们一会后续要研究的,我们先来把它这几个生命周期呢给他去研究一次,OK,那么接下来我们就回到我们的开发工具中啊,来吧,我再去写上一个包啊,有一个package,我们叫什么呀?Spring点生命周期嘛,叫什么叫声能读是吧?啊,是不是啊,啊来。
04:31
都进OK,呃,这个三面的话呢,我们还是去用一个class啊,我还是照这个看吧,好吧,然后这里面的话,我们还是给上一些基本的数据就行了啊,比如说还是这个brand啊,好大独类型的price,好呃,然后大家注意啊,首先呢,我要提供上它的这个get赛的方法,好,再提供上它的to string方法,哎,这就基本上写好了,那么因为我们要看它具体的生命周期啊,总共有五个阶段,所以说呢,大家注意第一个阶段,那么就是调用它的构造器,是不是来创建出对象啊,对吧,那我在构造器里面呢,我就去输出啊,这是我们的第一个阶段。
05:17
能看到吧,哎,第一个阶段啊,干嘛呀,就是调用我们的构造器,然后呢,创建我们的并对象啊,那么这个B对项创建好以后,第二个介项干嘛呀,是不是要给它这个对象的一个属性进行赋值啊,对吧?那么进行赋值的话呢,我们一会采用的是赛的方式啊,说说呢,在它的这个赛的方法中,我们就输出一句话啊,我就在其中的一个去写了哈,我就不写那么多了,好,那这应该是我们第二个阶段就是什么呀?哎,调用我们的S方法,哎,给对象的属性赋值能明白吧?哎,复制好,这是第二个阶段也有了,那么第三个阶段大家注意了,它是干什么来着,初始化吧,OK,那么对于初始化来讲,好,我就写到这吧,哈,初始化的一个方法,那么。
06:17
这个方法呢,是我们需要自己把它写出来的,好,所以说呢,我们就可以随便写一个,比如说我就叫做in it,然后明白吗?我就叫做in,好,那么来写一下,好,这是我的第三个阶段,就是调用我们的初始化方法。看到了吧,哎,叫出场方法好,但是呢,这个方法呢,大家一定要注意,是我们自己手动把它写出来的A字啊,大家一定要注意我们需要什么呀,好,需要通过一个叫什么in it method来配置我们的初始化方法啊,就是来指定吧,来指定一下,这才是我的一个初始化方法,好,那只不过这个东西呢,我们需要在配置B的时候才能去指定的啊好,那么接下来第四步的话呢,就是能使用了吧,那么对于使用来讲的话呢,就是一会我们在这个测试方法里面把它拿到,然后呢,去输出一下,是不是相当于用到它了,对吧?OK,那接下来我们先来写第五步啊,那就是我们的销毁了吧,好,销毁方法什么时候会销毁呢?就是大家注意啊,销毁的前提就是什么呀,OC容器关闭啊,IOC容器关闭,然后。
07:42
呢,被对象被销毁,那么销毁的话呢,它就会调用到我们的这个销毁方法了啊,我们来看一下。小鬼怎写是吧?好吧,来吧,我们来说出一下,这是我们的小鬼啊,第四第五步吧,这是啊,就是调用我们的销毁方法,好吧,那就就写好了,好销耗以后的话呢,接下来我们还是要做一个配置啊,那么这个东西你写出来以后,还没有做具体的配置,所以说呢,我们再去创建一个配置文件。
08:20
好有一个配置文件叫什么呀,我们就叫做story减life cycle点长不好,然后这个里面的话,我们就来配置一个病啊,就简单的一个病ID,就是我们的卡好class,呃,这个大家不要导错包啊,我们导的是生命周期里面的,好给他做入值啊,比如说他的这个brand,我们还是简单去写一写就行了啊,比如说好再来写一个price。好,把它写好,能看到吧,那么大家注意,你光把这个写出来以后呢,其实调用构造器没问题,调用赛制方法没问题,但是你的初始化跟相同方法,你并没有做具体的指令啊,那么所以说呢,在这个位置我们要做什么事呢?诶,我们要通过一个音译者method以及一个destroy method来告诉他,这是我的初始化方法,这是我的消毁方法,那么我们的初始化是谁呀?是不是这个音译的方法呀,OK,你就把这个方法的名字拷贝一下,放到这个地方,然后稍的方法呢?哎,你就把这个destroy,诶拿一下放到这个地方,这就可以了。
09:38
是不是指定了我们的初始化跟效果方法呀,对吧?OK,这个大家一定要注意啊,你不指定它是不行的,来把它指定上以后呢,那么最后一步啊,最后的话呢,我们就直接去写一个测试类啊,你看我就去一个还need吧,啊简单一点是吧,来T我们的life cle。好,那么在这里面的话呢,就测试我们的life cle吧,好,这里面还是先去实例化我们的容器对象ctx等于六一个class pass X秒啊,LOVE3的长秒,那么把这个容器对象给他先扭出来,扭出来以后呢,接下来我们就来获取我们的B对象啊,你看一下CDX2盖B,我们叫做car好,给他一个卡class好,最后呢,返回一个卡对象,那么这个位置大家注意,我来输出一下,其实就相当于我去使用你了,所以说呢,诶,这个我们就打印成第四步是不是去使用啊,对吧,就是使用我们的病房好使用并列项,然后呢,我来加上我们的卡好这就行了,能理解吧,OK,那么现在的话,我们看着好像是已经写好了,写好以后的话,我们来运行一下哈,大家。
11:00
那注意看了啊运行哎,怎么着了,这个咋还没出来的呢,没保存是吧?啊保存一下呢。出来了吧,少少少谁呀,少第五步,那第五步为啥没有啊,诶注意了,我们刚刚说的前提就是什么呀,容器关闭的时候它是不是才会被烧毁呀,对吧?所以说这个地方我们应该怎么做呀?哎,我们应该去关闭容器,怎么关闭容器啊,是不是用到我们的close方法了吧?OK,那你说现在我这个ctx能调用到close吗?有吗?没有吧,为什么没有啊,哎,因为我们说过那个方法是在谁里面提供好的啊,哪个哪个接口啊,Compable contact吧啊,你可以记不住它具体的名字,但是你一定得知道是在这个接口下面的一个子结果里来定义好的。那么也就意味着如。
12:16
如果说你现在通过它来去定义这个变量,那你是不可能去调用到它子监控里面的一个方法的,是不是啊,所以说现在我们就得什么把这个变量的定义呢,给它换一换,换成谁呀?好,Con application contact是不是它呀,对不对,换成它以后呢,我们就可以怎么做了,你看了哈CDX呀,Close,这是不是掉到了对不对,或者说呢,你就直接把它什么声明成这个类型的什么小行可不可以啊,肯定可以嘛,因为我的class pass就是你这个接口的一个子类型嘛,那你类里面的方法我肯定是能调用的到的,对吧?OK,来,那我们就看一下,当我把容器一关闭,那么其实我们整个的五个阶段我们就都能看得到了,看到明白没有,都看到了吧,而且你看一下这个地方,它还有一个日志提示,就是什么cing是把我们这个容器对象给它关了,关了容器对象以后呢,那我们就能看到,诶,它要去调用我们的销毁方法,把我们容器里面那个B对象。
13:16
也给他进行一个销毁的操作,看懂了吧?哎,这就是我们生命周期的五个阶段。能理解这个意思了吗?好,这是我们的五个阶段啊。
我来说两句