00:00
OK,来我们看新内容啊呃,三个话题呢,我们来说一下病的一个作用欲啊,那么大家也看到我标了个星是吧,那么说明这个呢还是比较重要的,OK,那我们来看一下吧,呃,首先啊,在这个sport中的话呢,我们可以通过B元素里面的一个叫做scope这个属性来去设置一下病的作用率啊啊,来决定这个病是单力的还是说我们这个多力的。啊,这是它的一个作用域,那么其实默认情况下呢,我们的病啊,就是我们配置的每一个病,它都是一个单立的,也就是我们这个single藤啊,说白了它就是一个默认值啊,但是呢,我们是可以通过这个scope呢来去给它设置成别的类型,比如说你是一个prototyp圆形的啊,就是我们的这个多利的啊,然后还有两个呢,是我们web作用于下,作用于下面会用到的,一个是request,一个是我们的session省啊那么今天的话,我们主要给大家去讲上面的这两种,而下面的这两种呢,我们简单的去提一下就可以了,因为暂时的话,我们还没有这个外部环境让我们去研究。
01:08
好吧,所以这个先给大家去说一下,OK,那么接下来的话,我们就来看一下怎么来去设置我们病的一个作用域,以及每一个作用域它的这个特点是什么,好,那么接下来我们就直接回到我们的开发工具里面来去操作啊,好,那么这个工程呢,我们就不再去用了,我们再去新建一个工程啊,叫做Java project啊,我们叫什么呀零啊,下一步来直接飞进去啊啊呃,然后在这里面的话呢,我们依旧是先去新建一个Fla,我们叫做live文件夹,在live下面呢,我们把我们,哎昨天使用过的这几个包呢,我就给它拿过来啊,我就不再挨个去找了,能理解吧啊把这个拿过来,拿过来以后呢,我们给它标pass,加到我们的诶这个项目下面,好加进来以后的话,我们就可以去测试了啊,我们来去写一个包。
02:08
框点at特硅谷好SC点,我们讲的是什么呀,Score啊,就是我们的作用玉啊,然后在这里面的话,我们就去写一个基本的一个类啊,我比如说呢,还是叫这个car吧啊基本的啊,那么这里面呢,我就不再去写那么多了啊,我们就写上一些,比如说啊brand啊,再写上一个double类型的brand就行了啊有两个就够我们研究了,来加上这个盖率赛的方法,好,再把朱斯string呢也给它加上好来那么加上以后呢,大家注意了啊呃,我们再去写一个配置文件啊,这个配置文件肯定是很重要的,一定要去写的啊来去有一个配置文件,我们就叫spring减Co点长秒啊作用浴,然后呢,呃,这个里面的话呢,我们就来先配置一个。
03:08
啊,不用写啊,我们来先配置一个B,就是把我们刚刚写的这个看了,先简单给它配置进来啊,啊ID。OK,把它配置来,然后呢,通过这个给啊比就等于我们的好,再来写有一个price好,那么这个VALUE6呢,我们就叫做还是昨天的这个数好吧,那这个很快我们就把它写好了啊,那么写好以后呢,接下来我们就来去测试啊来我们再到这个下面呢,去写一个九欧逆的测试类啊九欧逆的测试嗯啊,我用的是九的四啊,那写一个方法就TS对我们的scope吧啊finish。加进去OK,那么这个位置的话,我们就来测试一下我们的这个作用域啊,就是TS,我们的scope,好那这里面写什么呢?首先呢,我们还是要把这个容器对象呢,给它创建一下吧,来叫做什么ctx,等于六一个class pass X好把它创建出来好point减Co秒看不懂,看到了吧?OK,把这个创建出来啊好写出来以后呢,大家注意哈,现在我要让大家看到一个现象,什么现象呢?你看哈,我现在是不是只是创建了我们的IOC容器对象吧,对不对,我有没有做别的操作啊,没有好来回到car里面呢,我给它加上一个构造器啊,就是我们这个默认的这个构造器,构造器里面呢,我输出一句话啊,叫做什么呀?啊,比如说呢,A work啊。
04:59
就调用了我们这个car的一个constructor能看到吧,好大家注意了啊,现在我要让你看到的现象是什么样子的呢?就是当我仅仅的去创建LC容器对象的时候,我们来看执行一下。
05:17
啊,大家就能看到这个构造器是不是被调用了,为什么被调用了呢?那你调用被道器了说明什么呀?说明对象被创建了呗,是吧,那也就意味着现在我们所配置的这个病啊,是不是在容器创建的时候它就被创建了,是不是啊,这个病列项哎,它就被创建了啊好,所以说大家注意了,其实它默认的情况下呢,它是一个单立的病,这就是跟我们的作用欲有关系了,好给大家来解释一下啊,那么现在我们讲的是什么呀?病的这个作用域,OK,其中第一个就是我们的S啊,就是我们的单立的,那么这个单立的呢,又是我们这个默认值啊,就是我们的默认值,也就意味着你只要在我的LC容器中去配置它的一个病,那么它默认就是一个单例的病,能明白吧?那么大家要想一想什么是一个单例啊?
06:17
什么是一个单立啊啊,以前大家可能学过单立模式吧,对吧?啊,那么大家来解释一下,以前你们学的那个单利模式,它是什么样子的单利哎,就是把一个类的构造器弄成私有的是吧?然后呢,你每次想要获取这个对象的时候呢,你就不能通过new的方式去创建了,而是要通过人家提供好的一个方法来获取了吧,我就能保证是不是只能创建出一个对象来呀,对吧?所以说以前我们学的这个单例呢,它它是一个什么呀?一个类只能有一个对象吧,是不是?但大家注意了哈,现在的话呢,我们是单立的什么呀?单利的病,它跟你的这个累有关系吗?有没有关系啊,没有关系,听懂了吧?没有关系,你想一下这个东西我是单立的吗?不是。
07:17
啊,不是,所以说呢,大家一定要记住,现在我们讲的是单利的病啊,而不是单利的类,那什么叫做单利的病呢?就是你配置到这个地方的这个并它只能被创建出一个对象来,听懂了吧,只能被创建出一个对象来啊好,所以说呢,你看一下啊,这个single呢,是什么意思呢?就是在这个位置呢,我们有一个scope,它里面呢,可以去写一个啊single呢,这个是它的默认值,它就是单立的啊那我来给大家去解释一下,呃,单粒的这个病呢,大家注意了啊,就是只能被,就是在整个LC容器中只能存在啊一个病的什么呀,病的实例就是一个病的对象吧,能听懂这个意思吧,好,那我来给大家去验证一下啊,怎么验证呢?那你说只能存在一个行吧,那我就来获取一下吧,Get病我来获取什么样获取看看class。
08:17
这是不是返回一个呀,好,我叫做CAR1,那我呢,再把这个写上一次CTRLC好就准位,我叫做什么CT住,然后呢,我来比较一下car一等不等于car two是不是好,那假如说这个地方返回了true了,那说明什么呀,说明这两对象是都是同一个对象啊,你双等号比较都是处了,那说明这个绝对就是一个对象了吧,对不对?来吧,测试一下,大家看看是不是出啊,而且你会发现这个构造器就执行了几次啊,就执行了一次,那代表着我只创建了一个对象了,是吧,说成了这就是我们单位的病,它的一个特点啊,给大家解释,在整个容器中呢,只存在一个病的对象,而且好,而且什么呀,在我们的LC容器对象,嗯,好,就是LC容器。
09:17
对象被创建时啊,被创建时啊,就嗯叫什么呀,就创建单立的并的什么呀,对象明白了吧,就它的这个创建时机呢,是跟着这个LC容积对象被创建的时候就被创建的,然后呢,呃后续是吧,就是呃后续每次通过这个get并方法好每次通过这个方法来什么呀,获取并对象好获取我们的并对象时好返回的都是什么呀,同一个对象,这个大家能理解了吧,这什么意思呢?啊再来给大家解释一下,如果你是一个单立的病,那么我在创建我的LC容器对象的时候,我就已经把那个病的对象给你创建好了,然后呢,后续你每一次通过钙的病方法来去获取我这个病对。
10:17
象的时候,其实我返回的就是这么一个并对象,你不管获取多少次,我给你的就是这么一个并对象。听明白这个意思了吧?OK,那么这也是我们默认的一个作用啊,就是我们的single。这个大家能理解了吗?可以理解了吧?OK,一定要把这个特性记住了啊,首先第一个要记住它的创建时机,第二个要记住什么呀,每一次获取呢,返回的都是同一个病,那么大家想一想,他为什么要这么做呀?啊,为什么单利的病在这个容器启动的时候就给你创建好了呢,而不是等到我盖了病的时候再创建啊。为什么啊,你来想一下,如果说我都知道了,你这个病对象只能存在一个,以后每次盖率病的时候,我给你返回的就是同一个对象,那我索性我在创建容器的时候,我就给你创建好了,等你以后获取的时候,我就统一把这个给你返回过去是不就行了,省得说你每次获取的时候呢,我还得去看一下有没有创建过,如果创建过我就给你返回,如果没创建过,我就给你创建是不是比较麻烦啊,对吧?啊,那我就干脆我在一开始我就给你创建好,然后等你用的时候,我就把已经创建好的那个给你返回回去就行了。
11:35
理解了吧,啊,这就是我们的第一个作用,叫做什么single单的啊。
我来说两句