00:00
好,接下来呢,我们先来看第一部分核心容器的功能,比如说在spring的底层,那么它的重要的特性就是咱们这个IOC和Di。也就是说我们所谓的。控制反转和依赖注入,那么在认为所有的组件都应该放在我们的这个LC容器中,然后呢,组件之间的关系通过容器来进行自动装配,也就是我们所说的这个依赖注入,那么呢,我们接下来就来看用纯注解的方式来完成我们这个啊容器的组件注册管理以及依赖注入功能,我来创建一个文本工程。好,这个工程呢,Group ID com,点硅谷,那么我们是spring,我们先来体会注解开发。
01:01
那行,这个打包方式,当然还是这个炸包,点一个finish。我们把。Spring依赖的这些。倒进来,我们来在里边到contest。好,那用它以412版为例,把它复制过来。好,保存,我们来看现在呢,导入spring contest up beans啊,Log啊,Spring依赖的s log以及这个expression,那么这就是我们核心容器所依赖的所有环境,那么呢,如果是以前,我们应该在这写一个spring的配置文件角,这。比如点在这个配置文件里边呢,我们来用这些标签来注册一些组件进来,哎,这是以前开发的方式,那现在呢,哎,比如我们来写一个组件。
02:15
这个组件呢叫com点硅谷B,我们都放在这,那先写一个。啊,这个里边呢,我们就来随便写两个属性,一个是咱们这个name啊,它的名字和一个原名配h get方法把它写好。好,包括呢,图四转。做好,那为了方便起见呢,我把有参无参构造器我都写上,哎,我们先写一个有参的,再来写一个无参的。好,这是一个person,那如果是以前我们需要利用并标签的方式,哎,我们来写一个class,注册一个。
03:11
哎,注册一个person,然后呢,可以给他一个ID,方便我们从容器中进行获取,那么person里边呢,我们可用property来进行属性赋值,比如H年龄,我给它赋成18,然后呢,Property name。我们给它复制成张三好,这是我们以前的方式写一个配置文件,那怎么用呢?好,我们来写一个。Class我们来写一个主测试类man。好,来写一个慢。那么呢,如果是以前,我们需要这么来做,你有一个我们叫class pass,插面application application,然后传入配置文件的位置。
04:15
传入配置文件的位置,诶,这就在我们内路下的,它意思是路径下的一个面配置文件,然后呢,会返回IC容器application,哎,我们就叫application application,那这个容器中呢,我们就会有一个person组件,点GET1,哎,或者用ID,用ID,那么我们就直接写person,或者用类型都行,好,我们先用ID获取,然后呢,我把它打印出来,因为它是一个person,所以说我将它转换为person,哎,没什么问题。好,我们把这个强转过来,我们来测试一下我们以前的方式,走好这个组件呢,在容器中没问题,那么我们现在要用注解式开发,那自然我们这个配置文件就不应该写,那么接下来怎么办呢?如果用注解式开发,那么配置文件里边要注册比等等东西,那么我们现在呢,有一种方式,哎,我们先来。
05:28
写一个我们称为配置类。这写一个con好,比如呢,我们就叫man con。而以前配置文件的方式被替换成了配置类,配置类就等同于以前的配置文件。配置类,配置类就等于以前的配置文件,哎,只不过一个是Java代码的方式,一个是插配置的方式,好那么配置类写完以后呢,我们先用第一个注解叫at configuration,告诉spring这是一个配置类,好,告诉spring这是一个配置类,比就说呢,相当于说这是一个配置文件一样,那么接下来呢,我们注册组件怎么注册呢?我们以前写的是不是病标签啊,好,我接下来呢,把这个配置类,哎,我写一个方法,我让这个方法呢,返回一个per对象,好,然后呢,我return,我返回一个new,一个person,那么new的时候呢,我用它有参构造器,哎,我变成李四和20。
06:49
那么呢,以前用的是鼻影标签,那接下来有一个注解叫ant be,那跟鼻影标签是一模一样的,也就是说呢,哎,它的作用就是给容器中注册一个,注册一个B,那么要注册一个我们以前用插配置的方式B有ID有类型,那现在呢,我们注册的这个B,那么类型自然就是返回值的微信为返回值啊类型,那么ID呢,ID它默认是用方法名作为ID,好我们这个注解我就写好了,那注解怎么用这种方式我们来到我们这个主测试里边,那这种方式我们就不用了,这是配置的方式,好我来写。
07:50
一下,那么接下来呢,有一个新的类叫application,诶大家看这叫注解式的,咱们这个啊,我们这个application,它这要求传一个类型,这个类型呢,就是我们刚才的这个配置类。
08:19
第二,Class,你看我们以前是传配置文件的位置,现在呢,相当于是传配置类的位置,好,我把它返回过来好,还是返回一个application contest LC容器好,我可以把前面的关掉,那么呢,我们用它我来获取applicationest.get b我来获取,我呢现在先用类型获取来获取class,我们先看能不能获取到。我来输出一下,那么大家注意我们现在这个配置文件是不是就没啥用了啊,我们把这个就已经关掉了。
09:03
也没有加载它,我们来运行走,诶我们可以看到从容器中呢,拿到了一个李四20,这个呢,就是我们在这用方法返回的这个理四,哎,我们用at b注解来给它注册到了容器中,哎,一模一样的,那么这个ID是什么呢?哎,我们可以这么来用一下我application第2GET有一个方法叫being DeFinitions,看一下being的这些定义信息啊,或者呢,这有一个get beings for type,直接按照类型找到这些的名,那我们就来看一下person这个类型的组件在OC容器中的名字是什么。好,我来遍历打印一下,咱们这个名字就叫name。
10:05
好,我们来测试走,我们看到他是不是叫person没问题,那我想要给它改名,怎么改啊,那第一种方式,哎,我们来到我们这个配置里边,我们说方法名是不是作为ID啊,好,先写一个它来,我们来再来测试走,哎,你看确实ID变成零一了,那么呢,我们不想让它变零一,哎,我也不想通过改方法名的方式,哎,我给它改ID,那么我们直接可以给这个at特B注解,哎,那么这个注解上呢,能写我们很多的值,第一个Y6啊,Y6呢,就是指定我们这个名字,哎,我们就来。把这个value来指定上,好,我现在呢给它指定就叫person,虽然方法名叫PERSON01,但是我呢,我们给它指定一个名字叫person,那现在容器中就应该是组件。
11:07
没问题,这就是我们第一步,先用B来为容器中注册一个组件。
我来说两句