00:00
在刚才内容中我们讲到如何注入空值,以及如何注入带特殊符号这些值咱们完成演示,那我们下面继续给大家演示,咱下面演示什么呢?还是演示怎么注入属性大,咱演示这么三种情况,第一种情况它叫做外部B。我先写,然后我都会做解释,然后第二种情况叫做内部病,包括第三种情况叫急联病,然后写一下第一个外部B,然后下一个我们也是注入属性,然后包含这个叫内部B和这个叫。吉联。负值。这个是我给各位要演示的,那这什么意思呢?给大家强调,咱首先先说这个叫外部B是什么意思,这各位咱们写个具体例子来说明,然后例子是什么?这些例子各位应该都见过,比如说我们在操作中,咱应该有三层,外部层是不是要调用service层,Service层是不是要调用Du层,是不是有三层结构,那我现在咱就写两层,一个是service层,一个是Du层,通过service去调用Du,这过程就叫做引入外部B,那我现在说一下怎么做,给各位演示过程。
01:29
就是首先呢,我们这里边咱先创建这么两个部分。或者说创建两个类,比如一个类我们是一个service的这么一个类,还有一个是do这个类,这是第一部分,然后创建之后怎么做呢?咱们在service里边去调用do里边的方法,这个过程就是用到我们说这个外部B的方式,把这做到。那我下面把这过程给大家写一下,就是这个过程呢,咱们之前在讲的那个IOC原理中应该说过这个底层原理,咱现在把这过程是通过我们死文这个XL的配置方式把这个做到,那我下面给各位咱就继续来写一下这个操作,这些我先关掉再重新写。
02:22
比如现在我在这个项目中,咱们建两个包,第一个包就是这个service。建个包,为了区分,然后第二个包我们叫这个。Du,两包在里边,我先创建这么一个类,咱把这个类我们做一个创建。那这个类,比如这里边我写一下,我给它起个名字,我就叫user。Service,这是一个类,然后在user里边,为了方便我这个位置写一个方法,假如我们叫。A的方法,然后在A的方法中给他做个输出,我就叫这个。
03:05
Service。A,这样的话,咱们把类做了创建,然后我在创建Du啊,但是中呢,你可以写个interface在写实验类,我现在为了方便,咱这写个类做法一样,然后在Du里边,同样我也写上这么一个类,但是这里边咱写的稍微规范点,我就写上这么一个interface,然后再写一个事前类。我叫user。Do interface,然后在里边呢,再写上一个实现类叫user do。MPL,让它实现这个user Du的这么一个interface接口,所以咱现在把这个写出来了,然后我在U侧Du中也是创建一个方法,这个方法比如我教这个。Update。在实现类中把这方法给他就。
04:01
实验出来。叫update,然后咱们做个输出,我叫这个Bo。Update,所以咱们现在把这个结构就写出来了,写完之后呢,比如咱们现在我想做这么一个事情,什么事情呢?我想在瑞里边去调用do中的方法,然后把这个这个调用,那咱们看这个应该怎么去做,给各位来写一下啊,注意这个做法,如果说呢,咱用原始方式,那我第。咱在中是不是要得到它的对象了,得到它的对象之后,在里边是不是做过调用啊,那我写一下,咱先写原始方式,那我们的做法就是我们在这个threat里边,首先先创建user do的这么一个对象。那我创建一下,因为它是一个接口等于new上它一个u do是这么一个实现类啊,就是接口等于new它的实现类的对象,这过程是不是叫多态啊,各位应该很清楚一个基本的一个基础知识,就是U侧Du,然后咱们调用这个u do里边这个L的方法。
05:20
是不是可以做到,这是我们用普通方式做到,在里边创建它的对象,然后这里边调方法可以实现,但是现在我想把这过程通过spring这个配置方式把它实现,那咱们看这个应该怎么去做,这是原始方式,大家肯定这么做,这各位应该很熟悉,就是你对象调方法可以做到。就是原始方式。然后咱们下面用spring把这个做到,那咱们看这个应该怎么去实现,给各位,我在里边写一下啊,首先咱这两类包括这个都做到了,然后做到之后我们的。
06:01
第三部分。我写一下,咱们就是在这个spring的配置文件中进行这么一个配置,那怎么做,给各位来强调一下啊,它的做法。首先呢,我们要做的话,因为现在我的service也好,Du也好,他们的对象是不是要创建呀,所以咱第一部分在配置文件中把两个类的对象先创建,然后创建之后咱在里边干什么,把user Du注入到我们测中就可以了,那怎么注入,你可以用有参构造注入,也可以用set方法注入,都可以,只是我强调啊,这个注入的时候。咱之前注入是不是一个字符串类型,现在注入属性就不是字符串类型是什么?是你的user Du,这个类型就是一个对象类型,它也可以做一个属性,就是属性,它可以是基本数据类型,可以是字符串,可以是你的对象类型都可以,所以咱现在在user sweat里边就要把这个Du给它注入进来就可以了。
07:10
那怎么做给各位,咱就继续来写一下这个操作。首先啊,咱看在代码中,在代码中怎么做呢,第一部分。这个我就去掉啊,咱们保留最基本结构第一部分,咱们就先创建这个user do这个类型的属性。创建之后,我们可以生成它对应的什么set方法,这是里边的第一部分,那我现在把这个咱给他就写一下啊。我们现在写一个private,这个叫user do,然后user。这个Du这一个属性,然后写完之后生成它的什么set方法,把这个我们给它生成。然后他通过set方法可以完成这么一个注入,这是一个写法,然后写完之后咱下面在配置文件中进行配置,比如这里边注入之后,咱最后也可以做个调用啊,这个位置我也调用一下,然后在下面写配置文件,配置文件为了区分,我再重新创建一个新的配置文件啊,咱就不用这个B1了,比如来一个。
08:20
B2或者专门做咱们这种操作啊B2。这个写出来啊,然后在B2里边,我把这些都去掉,咱们重新来写这个具体代码。那怎么做写一下啊,首先。第一部分咱先把这个service。和do的对象先行创建,这是里边的第一部分,那咱们来创建一下啊,咱们创建肯定就是B这个标签嘛,加一个ID。再来一个class,然后里边的第一个是service,我们叫user。Service,它的这个路径com.at硅谷点五,点上service,点上user service,这是第一个创建service对象,然后创建之后咱们再来创建Du的对象,跟上面一样。
09:17
ID。加一个class,然后ID中起个名字,比如我叫user do class里边加上你的路径。但路径各位注意啊,Interface是个接口,它不能new对象,咱接口是不是要找它的现类啊,所以我现在找它的实现类,然后new它的对象。我之前说过ID名字可以随便起啊,就是你可以叫,比如说Du,或者叫别的名字都可以,我现在就叫这个名字,所以咱们现在完成了这么一个,就是两个对象创建,然后创建之后呢,我们要实现在里边注入你的Du,那咱们做个注入。我加一个注释啊来注入。
10:03
就是user do的这么一个对象,那怎么注入,按照咱们之间的方式,我来一个里边加个name name中加什么是你的属性名称,这里强调啊,Name中是你的属性名称。写一下就是你的这个内里边的属性名称是你的内幕的属性值,我觉得这个我说的很清楚啊,是比如说你现在属名字我是不是叫u Du写它,然后这个名字我叫AA,那我写的是不是叫AA,就这个意思啊,这叫属名称,然后这里边注意,因为它要注入的是一个对象,里边你不是写Y6,咱要换一个。这么一个属性这个东西。我写一下啊,换一个数名字叫ref,然后ref中把你刚才创建的对象输过来,比如ref中写的值是你这个值,这个值咱为了各位区分,就是你写它可以你的名字随便写,比如说叫MTL。
11:07
然后现在我把这个拿回来,这两个要对上,所以咱们现在这么做的话,就完成了这么一个注入,就是res这个属性指的是你那个创建的user do对象里边那个B标签的。ID值,它通过ID值,然后把这个给你注进来,就这两个对应,又说do是什么名字,所以咱们这么写之后,就完成了这么一个注入,而这种方式用到ref,就表示把你的外部B注入进来,就是你把其他对象能够进行注入。所以咱们把配置文件我们就写出来了,就是这么一个结构,我把代码给各位结过来,这是我们的service里边这个基本在里面,然后下面是你的死人配置文件,在配置文件中完成这个外部B的这么一个注入。
12:05
这个我们就做到了啊。所以大家把这个写法要给它牢牢记住,因为咱们用配用念中既然会写到这这用结构这个我们就做出来了,然后这个写完之后,最后咱们把这效果我们给他做个测试,主要就是咱写的这个过程啊,咱们来测试一下啊,那我们看怎么做。比如现在这里边呢,我就是再来创建一个测试类,单创建一个我就叫T这个。B啊,就是测试这个外部bin的这么一个测试类。然后在类里边呢,我保留。一个方法。在方法中结构不变,咱来一个这个OB。Contest。然后这里边注意啊,我现在用的配置文件不是B1了,得用的是B2啊,注意别写错,然后通过它就是现在我先把这个user service这个对象先得到,因为咱要通过它做我们的操作。
13:06
这个叫user。Service,它返回的是一个user service的这么一个对象,然后咱们通过user service调用里边的A的方法,因为我们在A的方法中,大家看到把do动的方法是不是也调用了,所以咱们现在玩这个写法,这个写法如果说正常注入,正常创建的话,它会怎么做呢?会把咱们的这句话输出,然后你会把do中的这句话也做输出。所以咱们现在。就把这个执行一下,看一下里边的结果是什么样的。我们来执行,大家看service do是不是都输出了,所以这就是叫外部bin的注入,比如说咱们把这种对象类型属性可以做注入,然后做法就是里边先定义属性,然后生成它的set的方法,在配置文件中,咱们用这个ref把其他对象给它注入进来就可以了,这是关于外部B的操作,大家把这写法给他,要老子记住,所以咱们这个叫点出来了。
14:12
关于注入属性外部病的这么一个操作。
我来说两句