00:00
好,那我们现在呢,咱们是通过注解加扫描的方式,然后将咱们当前这个注解所标识的类交给了IOC容器来管理,那咱们说这是啥意思呀,大家现在应该知道了吧,其实就是把我们当前注解。标识的这个类经过扫描之后呢,在咱们的IOC容器中去配置,它自动去配置了一个相对应的bin,这个bin它需要我们自己配置吗?它不需要啊,这个大家注意好,那大家都知道咱们的这个B呢,然后它都是有ID的,那我们当前通过注解加扫描所配置的这个病,咱们能想到它长什么样,它是一个B标签,它的class就是我们当前加上这个注,加上注解的这个类,它的一个权类名对不对?那但是咱们的bin它都有ID,那这个通过注解加扫描所配置的这个B,它的ID是什么呢?这个大家注意啊,来,那我们在这呢,来给大家写一下,然后咱们在这来写啊,好,然后咱们通过注解加扫描,然后所配置的B的ID对吧?它有默认值啊,默认值为什么为类的小驼峰啊,类的小驼峰什么叫做类的小驼峰?比如说我们当前咱们的user controller,然后当我们通过注解加扫描,然后把它配置为一个病之后,它的ID就是我们当前的user controller首字母小写的结果。
01:29
知道不啊,首字母小写的结果啊,其实也就是什么呀,什么叫类的小驼峰及类名的首字母为小写的结果。好,那这个东西咱们可以来验证一下呀,对吧,怎么来验证,那咱们获取B的时候,咱们是不是可以根据类型来获取,那你不也可以根据ID和类型来获取吗?你就在这来写一下,把ID给设置出来,叫什么叫user controller对吧?记好啊,是类名所对应的小驼峰啊,然后这里面咱们写个叫做user service,记好这是I'PL这不叫user service。
02:10
因为我们交给LC容器来管理的service的组件叫user service I PL,知道不?然后再往下大家来看这双引号,然后里面是u DAO I mpl,好啊,行,那我们现在咱们设置完之后,大家来看咱们的配置文件啊,我把这下面咱们测试的这个排除和包含已经删掉了,我们现在是把咱们这个包下面所有的类来进行扫描的,OK吧,好,现在我们来一个执行。然后大家来看一下,来你看获取到了没有,获取到了那说明咱们写的ID有问题吗?没有,因为这是根据ID和类型获取,如果你的ID要是有问题的话,咱们在这压根就获取不到,大家说是不是啊好啊行,那这个是我们当前这个注解加扫描所配置的B,它的一个默认的ID。那我现在我不想叫做这个ID,我想给这个ID呢,咱们给它自定义一个名字,就比如说我们当前咱们的user controller,我就想让它的ID是叫做controller,行不行,可以怎么做?大家注意,很简单,咱们去找到标识组件的这几个注解啊,然后来设置它的value流属性值,然后把它的value流属性值,然后咱们在这直接把它给设置为control,大家注意,这个就是我们当前为我们所配置的这一个病来设置的自定义的IDOK吧,这就是我们为当前注解加扫描所配置的病,它设置的自定义的ID,那现在呢,我们在这咱们再来一个执行。
03:43
来大家看啊。现在还能获取到吗?获取不到他告诉我们什么,他说没有一个名字叫做user control的病。那所以我们现在要想来获得我们的这个controller user controller的这个病,那我们在这就要写什么呀,大家注意,咱们就要写controller了,因为我们通过这个注解的Y6属性值来为它所配置的bin来设置了一个自定义的名字,那所以说我们在这就要来写controller,好,下面我们在这再来一个执行,然后大家看啊好,大家看一下有问题没有,没有问题啊好,但是其实这个东西咱们也不需要去管。
04:24
对吧,因为咱们说了以后啊,然后你像我们当前它叫什么,其实无所谓,你哪怕我们现在咱们要进行自动装配,咱们也说了,其实根据类型就行,因为我们当前这个类型的病,咱们只需要配置一次,OK吧,所以说跟它的ID其实没有多大关系,然后我们主要就是要来设置它的类型。好,然后还有就是你看我们以后啊,然后大家在这个叉L里面,我们再去配置某些病的时候,就比如说我们以后要学习的spring VC spring VC里面就有很多个组件,比如说什么视图解析器啊,对吧,然后还有咱们的异常处理器啊,文件上传解析器啊,你像这些对吧?有的时候咱们根本就不需要设置ID,为什么不需要设置,因为我们再去获取它的时候,咱们一般都是根据类型来获取,很少会通过ID来获取,但是也有一些特殊情况,你必须要获取ID。
05:19
就比如说我们在spring m VC里面,咱们会见到一个文件上传解析器,刚才跟大家说过的一个啊好,然后这个文件上传解析器呢,你把这个并给它配置出来,你不加ID,它跟你没有配置是一样的效果,那所以说这个东西spring VC在获取这个B的时候,它就不是根据类型来获取的,它肯定是根据ID来获取的,OK吧,好,所以说大家注意,一般咱们用的都是类型,所以说这个ID是什么其实无所谓,但是大家也要知道它默认的ID是什么,如果我们现在要想来自定义ID,咱们应该又该怎么做,OK吧,那咱们要想自定义ID怎么做,大家说咱们可以通过。
06:01
好,然后我们可以通过咱们标识组件啊,标识标识组件的注解的什么value属性值啊,然后来设置B的自定义的ID。OK吧,这个大家要注意啊,行OK,那我们现在呢,咱们这个注解加扫描的问题,咱们就说完了,然后咱们把这个呢给它注释掉,然后咱们还用默认的就行啊好,然后下面一个a controller就可以啊。行,那咱们把这个问题说完之后啊,那我们在之前咱们学这个基于叉ML的自动学,基于叉L来管理B的时候,咱们最后一个问题是不是叫做自动装配,那大家想一下,那我们现在啊,然后我们这个去配置病的时候,咱们用的是注解加扫描啊,原来咱们基于叉L的自动装配,我们是要在bin标签里面去写的,但是大家会发现现在。
07:00
我们再去管理B的时候,用的是注解加扫描,那我们当前咱们有没有在IOC容器中去配置,手动去配置这个并没有,那你没有配置这个B,那你怎么实现自动装配呢?所以说我们现在在注解加扫描的环境中,我们要来设置自动装配,咱们用的也是注解,OK吧?好,下面咱们就来讲一下基于注解的自动装配。
我来说两句