00:00
好,那下面呢,我们来看下一个问题,叫做为类类型的属性赋值啊,然后其实呢,这个类类型大家注意指的也有接口类型,就像是我们三层架构中,咱们的controller里面我们需要获取service的对象,然后service中咱们需要获取DA的对象,对吧?然后那这个时候咱们的control里面是不是就会有一个service类型的一个成员变量,那这个时候如果我们要把这些类交给咱们的IOC容器来管理的时候,我们应该如何为这些类类型的属性赋值呢?啊,比如说咱们先把咱们的这个案例呢,稍微修改一下。咱们在pogo下面呢,我们再来创建一个类,比如说咱们来模拟一下学生和班级,那大家都知道学生和班级之间应该是什么关系,应该是多对一的关系,一个学生在一个班级中。而咱们的一个班级呢,然后是不是可以有多个学生,那所以说咱们在这把这个班级创建一下叫class。
01:01
哎,叫做class,好,然后下面它所拥有的属性啊,比如说成员变量,咱们叫CAD,然后再来设置一个string类型的叫c name OK完了,然后下面咱们设置有参构造,然后还有呢,无参构造,然后还有它的set跟get方法,还有最后咱们的一个to string方法,OK啊,咱们这个有什么需求,咱们就直接往里面去加啊,然后这个时候呢,那我们现在要通过咱们的实体类来表示它们两个之间的关系的话,怎么来表示,大家还记得不?咱们说过对一对应对象最多对应几何,那所以我要表示这个学生所对应的班级,那我们是不是就需要在学生里面来设置一个班级类型的属性,大家说是不是?有印象吧,好OK,然后下面呢,我们在这咱们再来设置它的get跟set方法,然后呢,把它给加入到我们的to string中啊好。
02:03
好,兔子论方法咱们也重写一下。行好,那我们现在咱们把这些任务都做完之后啊,然后下面呢,我们来看,那这个class类型的属性我们该如何扶持呢?大家想想我们能不能使用这个value来进行扶持,那咱们说的value是专门来给字面量类型的属性扶持的,那你能不能拿着你能不能写个value,然后等于123,然后来给class属性赋值呀,不行,因为咱们当前这是字面量,而我们的class这东西它是字面量吗?它不是字面量,它对应的应该是一个对象。好,那我们要想给类类型的属性赋值的话,我们是有三种方式,首先第一种的话,大家注意,咱们先讲这个啊,引用外部的B。啊,引用外部的病,然后第二种方式,咱们讲祁连的方式,第三种呢,咱们讲内部并OK,首先呢,那大家来看,那我在这我再配置一个B好B,然后它的ID咱们叫做student,该几了,该five了,对不对,然后这是four,然后下面f five five好,然后它的class咱们来写一个student OK,大家来看,那下面咱们怎么来进行赋值呢?Property s sad,然后value等于几啊这上面这是100 1003,那下面咱们这是1004 OK,好,复制复制这是谁S内,然后这个的话咱们写成是赵六。
03:37
OK,然后下面这个是年龄,然后这个咱们是26,然后性别叫做金德,然后VALUE6,咱们给他一个男,当然这里面如果我们不给某个属性赋值的话,大家说有问题没有啊,没有,因为咱们这叫什么,这叫做set注入,所以说你调用set方法,你设置这个property标签,那它就会在底层通过set方法来为当前这个属性赋值,那如果咱们现在又没有设置property标签来为某个属性赋值的话,那也是没有任何问题的,因为咱们这里面呢,咱们的属性它不像构造器注入,构造器注入你必须要匹配相对应的构造器,而我们的set的方法,那你调哪个,那你就给哪个属性复值呗,对不对,好啊,行,那s score咱们就不扶持了,下面咱们来复一个,咱们再来写一个给class赋值,那这个时候大家说你能写value吗?啊,你在这来写一个123,这行不行不行吧,你怎么把这个123赋值给咱们的一个class对象呢。
04:38
大家说是不是对吧,所以说在这肯定通过value流是不行的,那我们要用什么,大家看里面咱们在这是不是还有个ref呀,Ref叫什么?叫引用,引用的是谁?引用的是我们当前咱们的IOC容器中的某一个B的ID。那我们现在要为class类型的属性赋值,那我们是不是去找到一个class对象,是不是就可以给它赋值呀?那既然咱们的IOC容器它本来就是管理对象的,那我们是不是就可以在这再配置一个B,它的ID咱们叫做class one,然后它的类型咱们就叫做class OK,然后这里面有两个属性,一个CAD,然后VALUE6,咱们给它1111记好,这是ineg类型的,所以VALUE6就能复制,然后下面有c name,咱们的value给它设置一个,比如说这个叫什么呢?叫做最强王者班啊,最强王者。
05:38
嗯,对不对,好OK啊行,那我们现在咱们这个就已经设置好了,那大家说我们现在要干什么,这不是一个对象吗?这一个B就是一个对象,那我可不可以把我们当前咱们的这个对象赋值给咱们的class属性可不可以?没有问题啊,所以说这个时候咱们就用就要用到哪个属性了,Ref属性它表示的就是来引用当前IOC容器中的某一个bin的ID来为当前的属性赋值,所以在这咱们直接写class one就可以能看懂吧,好OK,下面呢,我们是不是就可以测试一下了,我们在这要测试的是five v five,然后我们来一个直行,然后大家来看啊。
06:25
好,大家看,你看这个咱们当前这个班级信息是不是就有了CAD1111,然后c name最强王者班对不对,好啊行,这是我们当前为一个类类型属性赋值的第一种方式,叫做引用外部的B,这种方式咱们以后呢会用到很多,大家注意,因为我们当前的一个类中啊,咱们会有一些字面量类型的属性,当然咱们的一些类里面也会有一些类类型的属性,那这个时候我们该如何进行赋值呢?咱们就可以通过这个ref来实现,大家要注意ref这个属性是干什么的?Ref,然后它是啊来引用引用。
07:10
好,然后咱们IOC容器中的某个bin的ID,然后把我们当前这个B,然后所对应的对象来为当前的属性进行赋值,OK吧,好啊,行,这是我们当前的第一种方式啊,下面呢,我们再来看咱们的另外两种方式。
我来说两句