00:01
我们再来看另一种方式,给属性赋值的。那就是叫构造注入。构造注入。构造之后呢,通通过这名字你能猜出来了。构造注入调的是构造方法,而且是有参构造有参数的构造方法,通过构造方法来完成扎我对象创建的同时给使用赋值,这叫构造植入啊。实现构造输入。我们再来一个新的包。TBA03。我们把死丢的和固这两个拷贝到零三之中。打开丢类。在程序中呢,我们把这个什么赛的方法呀,都这个输出都删掉吧,输出都不要了啊,输都不要了。要了。
01:01
啊get呢,我也不要删掉吧,我不用啊。好,Name age at school。这是一个无参构造,下面我创建一个有参构造。好,我来创建一个有参数构造方法。我自己来承接。Public student,第一个参数我叫my name,第二个参数引开ing my age,第三个school my school。My name my是行参名后中输出一条语句。student类有参数构造方法。再来赋值属性的赋值,List的name属性等于my name age属性等于my age list school等于my school。
02:21
那我们现在是通过行参来给属相赋值。Spring框架它默认创建对象用的是这种无参构造,那我现在要让去调这个有参构造。叫这个有参构造啊。怎么做?还是写配置文件?我们把零二这个文件呢拷贝一份,变成零三。打开零三中的配置文件,那现在我们要做出第二大类了,第二大类第二大类。在后面那这块呢,我们要用的是构造输入说呢是调用类的有参数构造方法,在创建对象的同时。
03:14
同时在构造方法中给属性赋值,这叫做构造注入。那么构造注入呢?它用的是一个标签,叫做construct a。用它来实现。构造注入要使用的是这个标签,使用它好,那这里原来我们介绍这个标签啊。看是那个标签。那么一个C2,它是来表示构造方法的一个参数,一个参数,如果你的构造方法中有三个参数。
04:02
这个标签应该出现三次啊,应该出现三次。这个标签呢,有属性,首先它有一个name的属性,为了表示构造方法的行参名。还有叫index的,它是用来表示构造方法,参数的位置,参数的位置,那么参数从左,从左往右。啊,从左往右,它的位置是012的顺序。它还有属性呢,是叫做V流,那就是说如果构造方法它的形参类型是。
05:02
是简单类型的,那么使用VR,那就是说构造和形态类型是引用类型。那要使用的是RF来进行负值处理。那我们就用这个标签和它的属性来完成构造方法的调用。那现在我们改一下报名是零三呢,那里边这些就都不要了。都不要了啊。用的标签是KA空格,我们先用个name。Name是刑参名啊,刑餐名my name,你注意看student这个类。这是邢台名啊。My name。是行参名,它是字符串的,所以得用V0张三不止一个,看看啊,Name my age。
06:06
VALUE20第三个,第三个呢,Name是叫做my school,因为它是个对象类型的,所以if my school。也就下面这个my school,那他俩重名的话呢,是没有任何问题的,就是说你这个my school是属性名,是对象名,它俩不冲突,你把这个放到这儿,这样就可以了,完全没问题啊。在。爆红是因为我这个包名是零二包中的,也是零三中的,这就没有问题了啊,没有问题了,当然为了给你避免这个重复,我换一个名字吧,换一个拼音MY学校,把这个放到这儿。那就行了,那这里呢,我们这里就是使用name的。
07:02
完成构造注入,使内属性实现构造注入啊。Spring框架会去找丢的类中在三个参数的构造方法,然后根据参数的名附上具体值,My name就是张三,MYA就是20了。好,我们现在来看一下效果吧,再来一个测试代码。好,再来一个,这个叫零三了。打开零三,然后我们导入的是零三啊。0303。这个零二方法就没必要了,删掉就行了。好。那现在我们指定零三包中的配置文件。
08:01
然后获取死,来测一下吧,看看效果。首先我们看啊,有参构造方法执行了吧,再来看。死丢单的三个属性是复制成功了吧,没问题,张三20岁。当我们在创建这个容器对象时,它就读这个配置文件吗?读配置文件时就应该是走到这儿。走到这是不是一看你用的是CRL2吗?他就知道要找的是丢但类的有参数构造方法。你看它有三个标签,所以找的是带有三个参数的。My name my my school,找到student。你看这是三才能构造方法,这个曹明,My name my age my school,那么就会把我们的张三付给的是 my name20付给的my age。
09:04
在构造方法中,我们把形参付给属性,属性不就有值了吗?这就是构造注入的一个实现。好构造注入这种方式用name这里边给大家说明一下。我把这个MY学校是放在了ref的后面了吧,这不影响不影响,大家可能觉得应该把这个school是得放在前面啊,得按顺序才行啊。不需要,因为很近很智能很智能,他的处理方式,这样就说呢,他会首先把遇到的所有病。这样标签都先把对象串联出来。然后如果他在执行过程中发现这个对象找不到怎么办,他才二次去扫描这个文件。找到创建好的对象再赋值,那你想啊,当你第一遍执行时,这个对象和它是不是都能创建好吗?如果你再来一遍的时候。
10:08
一看到ref这个对象是不是一定是已经创建过的呀,就能找到了,所以它会有二次的扫描文件的啊,所以这个死固对象。它的位置放前放后都没有关系,也就说明你在论的配置文件中声明对象,不用关心顺序,不用关心顺序啊。好,那我们再来看看另一个属性index怎么用啊,Index。那这里呢,我们要使用这个index的属性啊,行,你们看,那来一个B吧,ID my student are class student,零三个同样看呗,空格in that,你看idea很智能吧,012都给你算好了,你就仨参数吗?
11:06
第一个是my name是字符串的video,这李四吧,然后再来一个pencil。然后是带一。一呢代表是my age为零二是六,看看二的 index2r MY学校好。学校面换一个,换个清华二号清华啊。那现在我来获取MY单的二。买单的二。这是ID值啊,这个值写错了。代码。看结果中李四26,清华大学没问题,赋值成勾。
12:06
不成功,这用的是索引的方式,012,那么零呢,代表就是我们说的这个词012,这是它的位置顺序啊。回到配置文件中,那现在啊,我能不能够把这个位置你换一下,我这么写行不行。好这块呢,不是这个26了,是22。要说我不按顺写012,我这样把顺序给它换一下位置行不行呢,就是位置乱一点行不行呢。应该也是可以的,看一下我们的测试的验证结果。年龄应该是22啊,在这你看没问题吧,可以。为什么可以显然?我们这块已经通过这个位置和参数和这个值是不是已经固定好了,所以它们顺序零啊一呀二啊,这个顺序就无所谓了,因为你也通过参数的位置和值已经固定上了。
13:08
那既然说到这儿了,那上面这一块。三个参数。我能不能换个位置,我第一个我先附的是这个my age,然后我最后再附这个姓名行不行啊,肯定没问题。我把这个张三呢换一个啊。换一个,换一叫周周亮吧,周良。那我们看MY是不是也是能够正常创建对象的呢?肯定是能的。My student。好,直行,我们看周量完全没问题吧,也可以的,没有问题的。那构造注入呢,实际上它还有一种方式,这种方式给大家说一下吧,这种方式呢,就是这样,我们把这个顺序啊给你还原回来。
14:06
然后省略index。这样做也行啊,也可以这种方式呢,我们叫省略index。省略音代你就不用随便写了,它是零位置,一位置二位置啊,这样做也可以没问题的,然后这个叫名字改一个吧,嗯,那我们叫做张。强强吧,好。这个叫麦,但那就得换个三了,名字不能重啊。三。打开我们的测试。啊,再走一个。嗯。看看我们这个张强强没问题吧,正常没问题啊。这就是构造出的三种方式,用的是name index和省略index,那我们在用的时候,如果你自己用的话,推荐这种方式用name,可读性更高,可读性更高啊。
15:13
这是构造注入。
我来说两句