00:00
各位同学大家好,咱们继续来演示此论里边基于注解方式管理B,刚才呢,我们说明了此文里边呢提供了四个注解,这个四个注解能够用于bin对象的创建,我们只需要把它写到我们的类上边就可以了,最终能完成B对象创建,那下面呢,咱开始进行属性的注入,在这里边呢,我们主要介绍三个注解,那我们先看一下第一个注解叫O。然后第二个注解叫call fair,第三个注解叫resource。用这几个注解能完成属性注入,那咱们下面先来说第一个注解叫O,通过它完成注入,然后咱们看一下啊,我这里写到,如果说我们单独使用二注解,它认是根据类型进行匹配的,就跟咱们之前说那个叉的时候,咱们看一下啊,咱们叉L的时候呢,最后讲了一个叫叉的自动装配,然后自动装配中有一种方式叫摆type,是不是根据类型匹配,所以现在凹二的过程跟它基本上是类似的,所以这一叫凹二根据类型进型自动装配,那咱们看一下啊,凹二呢,这是它那个码,在码中,大家看里边的这个部分。
01:22
这是什么呢?你可以列为它叫圆注解,就规定这个注解它里边具体的一些细节部分,那我看第一部分啊,它叫target,它就表示这注解可以用在什么地方,这里写到了第一个地方,这个注解能用到构造器或者构造方法上,第二个用在普通方法上,第三个用在参数上,第四个用在属性上,包括它也可以用在这个注解类型上,这是它用的地方。然后第二地方大家看啊,在这里边有一个叫布尔类型中有一个方法叫的,这个方法默认值是处,它就表示你注入这个对象,要求这个值必须要存在。
02:04
但是强调啊,注入这个值如果说不存在,它里边也不会报错啊,根据它它会做一个注入,这是我们提到的啊,主要是第一个这注解可以用在什么地方,那下面呢,就按照几种方式,包括注解,我们做普通的属性上进行注入,用在set方法上注入,用在构造方程注入,用在行参上进行注入,咱们演示里面的多种情况,最终完成属性的注入。那下面我们来具体做一下这个过程。咱们做一个实现。首先第一个我在里边呢,咱们就先建个包,为了我们进行测试,然后这个包我给它起个名字就叫凹凸,就这个包。然后创建之后,在里边咱这么做,还是按照我们之前这种方式,咱们还是建三部分,Controller service,包括do,最终完成它这个调用的过程,按照这个过程我们进行实现,那咱们开始做创建啊,首先我建个control。
03:09
咱们进行创建。然后CTRL创建之后,我们再来创建一个service,然后再来创建一个DA。那咱们创建啊,呃,我这么来做,我还是先来个包了,咱们来一个CTRL这个包,然后再建个这个包。在创建一个DAO的这个包。我们创建,然后CTRL放到这个包里。咱们两部分一个它这个接口接口咱们叫,然后加上它的,我在里边快速做创建。让他实现我们刚才这个接口就是user service,这时候写一个类,然后最后再写这个DA,首先也是写接口UDAO啊DAO给它改下啊,名字多写一个字母。
04:09
这个做个修改,然后创建之后创建它的实现类。U dal实现我们这个接口。所以现在这个最基本的准备工作我们就完成了,完成之后我们下面完成这个注入,跟咱之前说的一样,CR里边注入service service里边注入DA,最终完成它这个调用过程,那咱下面开始进行注入,这个过程呢,我课件中列出来有多种方式,一种方式叫属性注入,第二个叫set注入,第三个构造方法注入,第四个擎参上注入,另外还有其他的注入方式,那咱们先说第一种方式属性注入,这里边给大家演示一下啊,咱们怎么做?首先第一部分组件扫描我们已经开启过了,这一步肯定是必须的,你看啊,我现在包都在这个文六的这个下面,就是它的子包里边,所以它里边应该都能扫描到,那咱们看这过程该怎么去做,给大家做个说明。
05:18
我在这个图里边给大家写一下啊,咱怎么来做,首先我们的第一部分,你要把这些就是B的对象是不是先进行创建,包括control,包括service,包括map,或者咱们叫do啊,这对象需要创建,然后创建之后我们定义相关的属性,在属性上边添加上我们的注解,就是咱刚才说那个auto就可以了。那下面咱们把它快速写一下啊,首先第一部分把对象先进行创建,我们来创建一下第一个CTRL里边的对象,我们先创建,那咱们加个注解,就这个control,这咱之前说过的啊,把这个创建,然后第二个来到service里边,Service呢有接口,有时现类,你的接口不能肯定是时类,所以在时类上咱们加个注解,我就加这个service。
06:15
第三个DAO,咱们来到do的实类上边加个注解,我就加这个,所以大家看啊,现在三个对象都完成创建,是咱们刚讲过的,然后之后我们完成注入,在CTRL里边呢,我现在要注入这个service。然后在里边我要注入这个DA。把这个要进行注入,那咱们看这个过程我们该怎么进行实现啊,咱给他快速来写下啊,首先第一个跟之前讲的应该是一样,它本身用的其实还是咱说那个set方法进行注入,那首先第一部分咱们在CTRL里边我们加上一个属性,就是private user service user service,然后加上之后呢,怎么做?我强调啊,这里边不需要写set方法,咱们直接在service属性上边加上一个注解,这注解就叫o to,然后加上之后它会怎么做,它会根据类型找到对应的这个对象,然后完成这个注入,也就是说user service Switch个接口,找到它对应的类的对象,然后把这对象完成注入,这就叫咱们说属性注入,比如咱们说的。
07:43
一种方式。我这里写下啊,第一种方式。属性注入,所以这个就完成了,然后同样在service里边,我想注入DAO跟它是一样的,写一下啊。第一种方式,属性注入,那咱们加上DAO的这个属性userr do,然后在属性上边加个注解叫to就可以了,它也是根据类型找到对应的对象,然后完成这个最终的注入。
08:18
这是我们写到的第一种方式,属性注入,大家看是不是应该很简单,直接加属性加注解可以了,然后这个加完之后,咱为了操作方便,我在里边呢,写些方法,咱们最终完成测试,然后写方法啊,比如这个方法我叫这个都叫这个A了。这里边做定义,然后在实现类中我们做一个实现。在实现类中,我做一个输出啊,那就叫DAO。这个执行在里边,我也写上一个A的方法。做个定义,然后来到实现类中,把这个方法咱们快速做个实现,然后在里边做个输出就是。
09:04
Service service之后咱们调用do user do里边的A的方法执行,同样CTRL里边我们也是写这个方法。A的方法,然后CTRL里边同样咱们输出一下。最终调用service里边的方法A,所以现在就完成了,这就是咱们说的第一种方式,属性注入,也就是说定义属性,在属性上面加上out where注解就能完成注入,它是根据类型找到对象进行注入的。这个咱们就讲到这里,然后之后下面呢,咱们做个测试,试一下这个效果是怎么样,我现在来测试一下啊。咱们加上一个测试类。Test user control。
10:00
然后在测试类里边加上这个方法。我们写一下啊,Obt等于上一个pass,加上配置文件并点叉L,然后咱们得到这个CC呢,我就直接加上这个user c这个类型了啊class。然后给它加上。最终得到这个CR,咱们调用CTRL中的方法叫A,因为CTRL里边调了service service中掉了DAO,最终应该能完成它里面的多个输出,所以咱们最终把效果给他试一下,看一下最终结果。等他执行。然后大家看最终的结果啊,Controller service DA最终是不是都输出了,证明咱这注入就完成了,这是咱们写到第一种方式,通过凹二的属性方式进行注入,也就把这注解写到属性上边可以完成。
11:09
这咱们就说到这里,最终在重复一遍啊,它的做法就是第一步我们肯定引入依赖,然后第二部分在配置文件中加上组件扫描,这个不能忘记,这包不要写错,然后第三部分把你这些对象进行创建,包括controller,包括包括DA都要进行创建,这个不能少,然后最后一步。在类里边加上属性,属性上边加注解二就能完成注入,它是根据类型实现的注入,所这个我们就点到这里完成了属性的注入。
我来说两句