00:00
那我们刚刚呢,是讲了这个注解的基本用法,最基础最基础的还没有做很多过多的变形呢,往下来我们看它的灵活的用法。那首先我上面这呢,Component这个method这叫名字,我们看看其他用法,现在的这种用法是最正统的,那就是说我们使用这个value属性来指定对象的名称啊,对象的名称。这是第一种用法,然后我们再看呢,我们大家都知道这个注解中。如果你只行V6的话,这是不是可以省略呀,那就说你可以这么用component,好,里边呢写my student,这么做也没问题,那这种方式呢,我们说是省略为零,当然可以没问题,省略为零。
01:04
测试一下吧,应该能够正确的获取到对象。好,没问题,省略为六。那除此之外呢,还可以这么用,再来看一个用法,这个用法呢,它是说呢,我不指定对象名称,就说我不指定对象的名称,由。提供默认名称,看着怎么用component at component这么写。上面这个呢得注释,目前情况下就是说你在类上用这个同名注解,你目前来说只能用一个啊,不能重复,所以这只写一个component。那现在如果这么写的话。由spring来提供这个对象的名字,那这个名字是什么呢?
02:06
看着我把这个类名考下来。把它放到这个get b之中。这个字母是大写的吧。小写的。再来执行。好,我们看对象创建出来了吧,那说明。这个默认的对象名称是什么呀?这个名称它应该是类名的首字母,小写首字母啊,你把这个记住了。也就是说,当你不指定名称的时候,这个名字是类名的首字母小写。所以你看这个对象呢,它应该是一个迪达首字母小写的,就是默认的对象名称啊。好,这是给大家用的三种情况,那我现在先把这块注释喽,我准备呢,用这种方式,它是我们在。
03:09
真正公司中做项目时最常用的语法方式,那就省略value,就这么写就完事了。指定这一项的名称叫做my student。这是创建对象ma。它会调用的是无参构造方法,创建的是对象。在spring框架中,除了component以外,还有如下的三个注解,它和component功能基本功能是一样的,都能出现对象。那我们来说。中和,这个肯能。功能一致。
04:00
啊,功能一致,创建对象的注解,还有还有以下这几个,啊,还有这几个,第一个叫reportity。Reportery这个注解呢,它是放在DAO层的,说DAO的实线类上面,它表示放进DAO对象,DAO对象是能访问数据O的。这个reportery,它就叫做持久层的一个筑基。是放在dal实验内上的,那DA就持久层的嘛,所以它是持久层上使用的一个主解。持久层啊,这他写个文字吧,持久层是用在持久层内的,持久层类上面的,第二个叫at service,它是用在这个叫做业务层类的上面的,那它就是放在。
05:20
Service的实现类上面,它表示创建service对象啊,Service对象是做业务处理。是做这个业务处理啊,做对象是做业务处理所有事物等功能的,也就是说你的酸类是可有事物功能的啊。这个有点长,画下行吧。这个换下行吧,有点长啊。
06:01
这是放在service类的上面的。还有一个第三个,第三个是叫做ctrler TL crler,这个crler呢,它是放在这个控制器的上面的,它是用在这个控制器的上面的。它的作用呢,是放在控制器,也就是说我们说它处理器类的上面,它是创建我们的控制器对象的,控制对象能干什么。控制器对象,它能够接收用户提交的参数,还能显示请求的处理结果的。
07:02
这说的就是so拉那个功能啊,So那个功能。好,这是我们的三个注解,以上这三个注解,以上三个注解的使用语法和。一样。和component是一样的啊,是一样的啊,都能够都能创建对象,但是。这三个助机啊,这三个助剂,它还有额外的功能,还有额外的功能,还有额外的功能啊。什么功能呢?大家看我在说的时候,这个reportery,它是表示这是一个持久层的对象吗?持久层对象是能访问数据库的,而service它是用来给业务对象使用的,而业务对象能是业务逻辑,还可以有事物。
08:13
也就是说你的色类是不是有事物功能的,而ctrler呢,是放在控制器上面的,控制器是能接收请求,能够显示结果的。说明这三个注解它们都能创建对象,但是是有额外的含义呀,额外的含义就是说,如果是reportery,说明这个对象应该是个do,是访问数据库功能的。如果是放在类上面有service,说明这个service是能够做业务逻辑处理,能够有事务功能的。那如果你用controller的话,是表明这个类它是一个控制器的角色的,所以说呢,这三个注解。它的功能要比continent多,它是能够给这个类赋予不同的角色的。
09:04
那么这三个注解是干什么用的呢?这三个注解是来给我们的项目分层的。也就是说这三个主题啊。还有这个service。还有这个CTR了啊,他们呢,是给我们项目的对象分层的。啊,分层的。这个是我们的19层。这是业务层,这是控制层,是分层的啊,是这么来使用的。这三个注解都有额外的角色。基本功能是一样的,语法也一样,比如说component怎么用,他们三个都怎么用,但是他们角色不同,所以你在用的时候呢,要注意,如果你现在要创下do,你得用这个注解。
10:00
如果你串着service,你要用这个注解啊,要注意这就行了,是分层的,那现在问大家个问题吧,我能不能说这四个注解的功能是一模一样的呀?这四个柱体的功能是一模一样的,能不能来告诉我能不能是一样的?好,能不能一样?在搜索功能是不一样的。如果是一样的话,你给我打个一,是一样,你给我打个一啊。一样是一样的,你给我打个一,不一样,你给我打个二。好,再给我打吧。这速写功能是不是一模一样的,是不是一模一样的。好,大家回答正确不是啊,不是一模一样的,我跟你说了半天了嘛,就是说他们三个拥有component功能,是创建对象,但是这三个注解是不是有额外的一个角色的声明啊?
11:05
有额外的功能,肯的没有啊。所以说基本功能是你可以认为呢,就像这个李伟峰说的基本功能你可以认为是一样,但是他是有额外的其他的一些角色声明的啊,那地方也不一样啊,不一样。这三个功能要多于它,这要多于它,那这儿有一个问题了。那我什么时候用component呢?大家想啊,我什么时候用component呢?好像这些是不是都有固定的地方啊?那我什么时候用component呢?还有什么碰的?Component用法是这样的。也就是说,当你的这一个类。既不是他。
12:01
也不是他,也不是他。你还有对象?用component,就这么一个内容。也说你这个类不确定它是DA。也不知道他是service,也不知道他是controller。这时候。用component肯定没错啊,就这么用就行了。对,就像胡亮说的这个功能呢,你不知道或者不具体的时候用component,那就像我写的这个死掉的,你说它是个十几类。啊,十几类是可以没问题啊,你说这个死掉单的,你说它这个do不是service不是很多老,也不是你说它十几类,现在它实上也不是,因为你并不知道它是个十几类啊,你不知道,因为现在没表吗?那它只是一个普通类而已,那么这个类怎么办?很胖它呗,适合他非常适合。这是component,好,那这就时候给大家说的这些注解啊,我刚才跟你啰嗦那么半天,特别说了,我们说嗯,这三个注解。
13:08
他们和component是不一样的,是有额外功能的,我说的这一堆,刚才讲的实际上是一个真实的面试题,就是面试官,人家问这个学生了,说这三这四个注解啊,你给我说什么功能吧。然后学生答了,说你出对象呗,这都传对象呢,就完事了。然后面试官就问了。说这四个注解功都一样,那为啥整四个呀?一个多好啊,四个都一样还得记,多麻烦呢,为什么不用一个呢?那就说我们这个注解是有额外功能的啊,额外功能的它能表示不同的含义的,是对我们的程序进行分层的啊,这是持久层的,业务层的和控制层的,是有体系结构的啊,所以这要注意它不一样啊。行,再给你强调完了啊,不一样,这是四个注解就讲完了,四个是创建对象啊。
我来说两句