00:00
好,我们上一节课呢,看了一下这个at o标在我们这个属性位置,为属性自动赋值,那么呢,我们来说还有一些其他的方式,O呢,它不只能标在属性位置,我们点进去看,它其实在构造器方法包括参数啊,包括咱们这些属性位置都能用,所以说呢,说按照它能标的位置,构造器参数,包括咱们这个方法和属性这些位置呢,它都能来标at o注解,那么呢,我们只是在前边使用了service,我们在属性位置标注咱们这个,那么呢,我们现在呢,我可以来再来写一个组件,我们来试一下其他的方式。比如呢,来写一个boss,好,这个boss呢,它需要一个组件是咱们这个卡,那么我把它的这个to string方法拿过来,包car get,我也可以拿过来。
01:12
我把这个boss组件呢,我们就用这个加一个component来加在容器中,那我们把这个配置文件让他扫描的时候呢,来多扫描一下咱们这个里边的组件。B包下的好,那么呢,这个boss我们就加在容器中了,但是boss中的卡啊,那我们把这个卡也加在容器中,好,我们都加在容器中,那接下来呢,我们来看这个boss中的卡,我们可以用第一种方式在这o wear没问题,但是呢,我们也可以把它放在这o wear,我们一般标在set方法上,我们可以放在这儿,其实标在任何方法上都行,只不过呢,我们O标在方法上,标注在方法上,那么呢,Spring容器。
02:06
容器创建,对象创建,哎当前对象的时候,像然后呢,就会调用咱们这个方法完成赋值,那么关键调这个方法,我们调在S的方法上,Set的方法有一个卡参数,主要就是这个参数我们标在方法上以后,我们这个方法用的参数方法使用参数啊比就说呢,自定义类型,自定义义类型的指从IOC容器中进行获取,也就说呢,我们这个卡它就会获取到LC容器中的卡,我们就能拿到这个卡,那么呢,我们把这个图司论写在这儿,我们先做一个测试,看容器中能不能拿到。
03:01
Application,我们先从容器中拿到这个boss,看一下他的卡是什么。Boss,好,我来打印一下。Boss。好,我们来看这个卡呢,我们来看这个boss,这个卡呢,是4034,哎没问题,那么呢,我看一下我们这个boss用的这个卡,我们是标在这个上面的,那么这个卡是从IOC容器中拿的吗?我再从容器中拿到这个卡get b我们对照一下。好,我们把这个卡来打印一下,看输出。来测试。好,我们来看这个boss里边用的卡是4034 LC容器中也是4034没问题,所以说呢,我们第一种我们可以把O标在方法位置。
04:12
标注在方法位置,那么呢,第二种构造器,我来到咱们这个boss里边,默认我们这个加在容器中的组件,默认加在IOC容器。容器中的组件啊,容器启动会调用无参构造器,会调用咱们这个无参构造器构造器,然后呢,创建对象,然后再进行初始化赋值操作。赋值怎么操作,比如说呢,这是我们默认的,那么呢,我可以这么来写,我给bos呢,我不写无餐了,我写一个有参构造器boss。
05:09
我来写一个有参构造器,这个构造器呢,我来传一个看。我们把这个卡复制过来。This car等于把这个set方法的掉了,我不标这我呢标在有参构造器上,这样的话呢,我们spring在启动的时候就会调用我们这个有参构造器,我们来可以看一下,诶,我们这是boss的有参构造器。我来控制台打印。我们看这个呢,我们来看创建对象,哎,是掉的boss的有参构造器创建了对象,而且呢,这里边的卡跟容器中的卡53CA 53ca也一样,也就是说标在构造器位置,我们这个构造器要用的参数,要用的组件也都是从容器中获取到,说呢,我们也可以放在这,这是我们说的第二个位置标在构造器上,那么呢,其实包括我们也可以把这个标在,哎,我们说的这个参数上,哎,我这个构造器上我不标了,我来标这是吧,Owa放这放这的效果是一样的,或者set方法把owa放这效果都是一样的,哎,那么现在呢,先不放,我们放在这个参数位置。
06:41
来测试走,我们来看还是掉到有参构造器,而且卡对象还是容器中的,同时呢,我们也可以放在参数维持。放在参数位置,哎,不管怎么放,他们呢,都是从容器中容器。
07:04
其中获获取咱们这个总向的值,获取咱们这个参数总件值,而且呢,我们来说我们其实可以,如果我们当前类只有一个有参构造系,这个owa是可以省略的啊,我们把它删掉,删掉,然后呢,我们来看一下。因为只有一个有参,他们要调boss创建对象,只能调这个有参,那么怎么办呢?走有参里边的这个卡,我来可以看还是调到有参构造器,有参里边的这个卡呢,也是从容器中拿,哎,403C 403C都是一样的,所以说呢,我们来说在标在构造器位置,如果组件只有一个有参构造器,然后呢,这个有参构造器。
08:00
有参构造器参数位置。参数啊,有参构造器的凹可以省略。可以省略,然后呢参数位置。还是能够自动的,参数位置的走向还是可以自动从容器中过去。啊,这个呢,大家知道一下,这是我们这个owa,特别是在构造器位置啊,这个呢,大家看,那么在方法位置,哎,这个呢,还有咱们这种用途,比如呢,我们在这刚才创建了一个啊,咱们这个boss boss里边要用卡,那么呢,我以color为例,假设color里边也要用卡。
09:00
Color里边也要有哇,这个card get。拿过来把color的to string。我也拿过来,我现在呢,把color不用component加在容器中了,我们来到我们的这个配置类中,我们用原来的方式,哎,我们这个color。我们用这种方式把咱们color加在容器中,Return一个color。但是如果这样加的话呢,那color了里边的卡默认是空的,那我可以怎么做呢?因为这个方法容器启动要运行给容器中添加组件,我还可以给这个方法上,我来写一个看,我来写写个看,你可以在这标owa,你也可以不标,我们直接不标这个看就是默认从容器中获取的,所以说呢,我们还有这种方式啊,我们这个at并标注的方创建对象的时候,方法参数指从容器中获取,所以说呢,哎,这是我们这个卡,那我们可以来看一下,我把这个卡呢创建出来。
10:25
我把这个color创建出来,我给这个color里边把这个设置上。Color。来set卡,哎,我们用的这个卡,我把这个color返回,我们来看color里边用的卡跟boss里边用的卡是不是一个car呢?好,我们在这再把color拿一下。带上冰。好,我来打印一下这个卡。测试。
11:01
我们来看。大家来看现在color中用的这个卡,4852,跟我们容器中的卡,跟boss里边用的卡都是一样的,也就说呢,我们这个O啊标要在我们这个at b方法位置,哎,或者呢是在构造器位置,都是可以省略的,默认它们都是从容器中获取,哎,方法位置我们用的最多的就是an be,加上咱们这个方法参数,然后呢,参数从容器中获取,这是咱们这个啊。其他的owa的一些使用,当然了,我们后来呢,这些owa我们都是不写的,包括有参工作器我们也不写,但是呢,大家得知道这个默认规则,这些位置默认默认不写O。我们不用写,效果都是一样的。
12:03
是一样的啊,都能自动装备。好。
我来说两句