00:00
各位同学大家好,刚才呢咱们演示了bin的作用域,分别演示了单实例对象创建以及多实力对象,那下面呢,给大家来演示病的生命周期,首先解释一下什么叫生命周期,大家看这词,什么叫生命周期?你可以理解为就是一个人,如果说一个人的生命周期,那就是从这个人他出生到死亡这个过程,如果说咱们现在说B的生命周期,那指的就是B对象从创建到销毁的过程,这个叫生命周期,那B的生命周期到底是怎么样的呢?给大家我先在这图里边,咱们先把生命周期写一遍,然后咱们进行演示,验证一下它生命周期里边这个完整过程,我在这里面给大家先写一下。Bin的生命周期写到这位,首先呢,我们里边的第一步给大家写一下,因为你要创建B的对象嘛,所以第一步操作就是B对象的这个创建,它的具体表现就是会调用你这里边的无参数的构造。
01:08
就是无参数构造会执行,这是里边的第一部分,就是B对象创建,然后这个之后下面进入到第二部分,第二部分做什么呢?比如咱们把对象创建在创建过程中项里边是不是要设置它的属性做那个注入,比如说你是普通类型,或者说对象类型的属性进行注入,所以第二步操作就是。写下啊,给这个B来设置它相关的属性,或者说bin的对象,设置它相关的属性,就是把属性值进行注入,这是第二部分,然后这个之后下面有第三步操作,第三步做什么呢?给大家强调啊,在我们的此文里边有一个东西叫后置处理器,所以第三步呢,你可以这么理解。咱们先写第四步啊,第四步呢,你理解为就是对我们这个B对象进行初始化。
02:05
这是要做到的,对它进行初始化操作,而在初始化之前,它会调用一个就是bin里边这个叫后置处理器,这一会咱会演示啊,咱先写出来,后置处理器就是在初始化之前,后置处理器它会先执行。初始化之前,然后在初始化之后,这后置处理器还会进行执行,就之前之后它都会进行执行,里边有一个后置处理器,这是之前,这是之后。然后在bin初始化的时候呢,它会调用里边这个指定的初始化方法,这些方法后面才会配置调用指定的初始化的方法,这是我们的前五步操作,然后这个之后,下面我们看第六步,第六步呢,那就表示我现在进行了初始化,然后这里边后置处理器都执行了第六步咱就完成这个完整对象,就是咱们可用的对象就创建出来了,写下就是B的对象,它就创建。
03:11
完成了,可以使用了。这是第六步,然后这个之后我们第七步,因为对象要销毁嘛,所以我们第七步就是B的对象它要进行销毁,这个销毁呢,咱后面可以配置就是指定销毁的这个方法。它会进行执行,然后销毁之后,最后就是LC容器它肯定就关闭了,那写个第八步。IOC。这个容器。啊,最终它就关闭了,所以以上呢,就是生命周期一个完整的步骤啊,当然可以不写第八步啊,主要是前面这个起步操作咱写的更完整点,主要这么个过程我再说一遍啊,然后咱们用具体例子给各位来验证一下这个这个周期。
04:04
咱们来看啊,首先第一步。Bin的对象创建,它会调用无参的构造,然后第二步呢,给bin里边的属性设置值,第三步它里边因为最终肯定会初始化,但是它在初始化之前会执行后置处理器里边的方法,在初始化之后还会执行后置处理器中的另一个方法,然后第六步,当这个都之后,我们这个对象就创建完成了,那就可以使用了,包括第七步,当我B对象销毁的时候,会调用指定方法,然后最终LC容器就最终关闭了。以上就是一个B的生命周期的完整过程,这各位给都要知道,然后下面呢,咱们把这步骤我们按照具体例子给各位来实际验证一下,咱们看一下这个效果到底是怎么样。那我这里边写一下啊,这些我先关掉,咱重新验证。
05:02
首先第一部分我在里边呢,咱们建个包,这个包就叫life。就是生命周期啊,咱就简写就叫life了啊。这个把它创建,然后创建之后在里边呢,我们创建一个类,比如这个类我就叫user,然后在user里边,我给它加上这么一个属性,就来一个string。啊,咱们叫这个name,就是用户的名称,生成它里面这个get和set方法,把这个给它生成一下。个我来写一下啊,Get和set方法,这个咱们就完成了基本准备,然后之后在里边我们为了咱能演示,因为刚才咱说的步骤,所以在里边呢,咱需要特别写上几个方法,那咱们开始来写一下。首先呢,我们写第一个方法,因为咱刚才提到我第一步B对象创建会调用无参构造,所以我在里边呢,就加上一个无参数的构造,咱们写一下啊public。
06:10
然后在里边,为了咱一会儿测试方便,我加上一个输出,输出里边我就写一下,就是第一部分调用无参数构造,然后创建对象。啊,就是调用无参数构造,然后创建这个B对象。这是我们的第一部分,所以咱们写了一个无层构造,然后写完无层构造之后,我们继续来写,刚才咱说了第二部分,第二部分呢,它要设置里边的相关属性,就是往这里边来注入你的值,那设置属性呢,咱们也是基于这个set方法做到的,所以我第二部分在set里边咱们做个输出,我这里写一下。我这里加上啊,就是我们的第二步。第二步指的就是刚才写到的给B对象设置属性值。
07:00
设置属性值,这是我们的第二部分,然后这个写完之后,我们继续往下来写,第三部分呢,我们来看啊,在这里边有一个后置处理器,这咱一会儿再加,咱们先加上一个初始化方法,这方法一会儿咱会进行配置,另外再加上一个销毁方法,这咱们也需要进行配置,那我加上这两个方法角这位置。第一个初始化的。方法。然后下一个销毁的方法,那我先加上初始化的方法,咱们写一下啊,我们这里边就是做一个测试,所以咱们直接做个输出了,我就叫这个init method啊,这个名字随便起,然后在里边我做个输出,里边就写上我们这个步骤啊,这个步骤呢,应该是按照我这个图里边的第四步,咱先写第四步,第三步后面咱再完善。第四步就是调用指定的方法进行初始化,就是B对象的初始化,会调用指定的初始化的方法。
08:12
这个是我们写到的啊,第四部分,然后这里我们再写一个销毁的方法,咱们写一个public销毁应该叫那个。我们叫method这个方法,然后在里边我也是给他做一个输出。啊,你看这个啊。咱们给它输出一下啊,跟这个应该类似,我就把它复制啊,咱给它快速改一下。写到这位置。咱们写一下啊。然后在里边,呃,加上这个部分。这个是我们的第五部分,就是B的这个销毁,就是这个B对象的销毁。它会调用指定的这个销毁的方法,所以这个部分我们就完成了,以上是我们写到的里边这些最基本的方法,就咱们初步做到了,然后做到之后下面呢,咱们在里边配置文件中来配置一下里面那部分,然后最后再加上那个后置处理器啊下面咱先做个配置,然后把这过程我们先做一个基本的一个验证。
09:22
那咱们写下啊。就是下面我们在这里边呢,我建一个配置文件,咱们做个创建,然后这配置文件我给它起个名字就叫B。这个life点叉L。创建之后在里边加上我们相关的配置,那我们看怎么来做啊,首先跟之前一样,Bid。Class里边呢,加上这个路径,把这个给他拿过来。点上这个user,然后给它起个名字叫user,这个是我配置一个对象,然后配置过程中在里边呢,我们还有一些属性,比如咱刚才说过这个scope就是单实力啊,不写就是它,然后除了这个之外,里边还有属性,咱现在写一下啊,大家看这个属性。
10:16
这名字很好记啊。method表示你初始化的时候会掉的方法,目前的是method,这是一个另外还一个方法叫destroy method表示你销毁的时候会调的方法,那就加这个destroy method,这是我们加的一个基本配置。这各位明确啊,注意这个写法中,你注意啊,这个方法只加方法名字,你不要加个括号,这就不对了啊,只加方名字,然后之后呢,在里边咱把属性做个注加上,我这里就一个啊,咱们加上一个这个用户的名称,我们就叫。
11:00
现在咱们完成一个基本的配置,这个就做到了,然后做到之后下面呢,咱们在里边啊,做一个最终的测试,试一下这个效果,包括大家看啊,第一部分肯定是无参构造执行,然后第二步来设置我们的属性啊,我把这个放到上面啊,为了咱看着方便。放到上面来,这里。就是设置我们的属性,然后第三部分应该是那个后置处理器那个执行,这咱一会儿来做,先看第四步,就是进行初始化,然后初始化之后里边的这个步骤就是第六步,我们要把这个对象得到了,得到之后第七步得要把它做一个销毁啊,这是第七步,所以咱们先写这个步骤,然后最后再加后置处理器,现在这个基本的过程就完成了,完成之后下面呢,咱们做一个测试。我在里边测试一下啊,加上test user。然后咱们加上一个问方法,在里边加载配置文件。
12:05
咱们加载一下啊,加上文件叫B这个life。点叉L。然后加上之后取一下我们这个对象get啊,咱们是user,然后user点最终得到你这个对象,我把这对象我们最终就给它做一个输出了。优的对象,当然这个过程中呢,因为咱里边还有里边那个就是刚才说到的第六步啊,就是这对象就得到了,所以在里边为了咱这过程更加明确,我这里边做个输出,就输出咱们的第六步,也就这个B的对象就创建完成了,那就可以使用了。B对象创建完成了,可以使用了,所以以上啊是咱们把这个生命周期做一个验证,那下面呢,把这个执行看一下,它最终的结果,咱来执行一下啊。
13:09
然后大家看这个过程中啊,你看这个步骤中,第一步调用无参构造建对象,第二步是不是设置属性值。第四步进行初始化,第六步那对象就可以使用了,咱们完成这个过程,但是大家注意啊,里面一个特点,你看啊,我这里还一个方法,是不是有这个方法说对象销毁的时候会执行,所以咱们现在要让对象销毁,那怎么销毁呢?这里强调啊,在我们这个有个方法,所以咱们的时候呢,又不能这么,因为它里没那个方法,比如说你看啊contextt,我们加个方法,它没有销毁方法,所以咱们对象的时候要用它这个实现类才能演出这个销毁我这个对象。然后在里边有个方法叫这个方法,看到这里它就表示会进行销毁。
14:07
就是这个B啊进行销毁,当它一调用你这里边的销毁方法就会执行,那咱们再测试一下啊,注意这个测试怎么测试,用这个pass contact,用它的实现类对象进行,而不要用那个接口,用那个接口它没有这个方法。现在直小看这个结果。然后大家看啊,你看最后是不是有这个,是不是他进行了销毁啊,调用了咱们这个方法。所以现在啊,咱们就把这个生命周期中的基本的过程,我们就演示完成了,各位知道这个特点。
我来说两句