00:00
我们来看配置B里边这个自动装配。首先呢,我们需要解释一下什么叫自动装备。打开我们这个配置文件,我们看哈,我们这块的话呢,配过一个PERSON5这样的一个bin,呃,我用这个age a name跟card reference分别为age赋值为30,呃,Name赋值为queen,其中呢,这个card是不是一个集合呀,它指向了我前面已经配置好的一个集合B,对吧。这个很明显不是自动装配,都是我们手工指定装配的,那自动装配就是说诶。哦,这个是不表达。宋中飞的意思就是说。我这个病不需要这样写了。我通过配置一个这个自动装配的方式,它可以自动的把这个卡给我装配进来。这就叫自动装配。PPT。
01:02
LC容器可以帮助我们进行自动装配bin,我们需要做的就是在bin的奥wa属性里边指定自动装配的模式。可以取这样的一些值哈,By type。根据类型装配。By name。根据目标B,目标B的这个ID。ID值跟当前这个B的属性名进行装配,就是这两个名字要是对得上的话就可以配得上,嗯,Contractor根据构造器进行。自动装配这种方式的话呢,我们不推荐使用,因为当一个B有多个构造器的时候呢,这种情况比较复杂,通常情况下的话呢,用这个by type或者是by name就可以了。那我来新建一个。今天一个包奥尔。
02:02
Close。定个。Private strand。Name。B。Address。地址,Private car。利用的GA size方法。重写一个TH。哦,看来这个怎么样。需要垫一个类是吧。建一个类。这个呢,我们也来建一个类。Address里面我们写一个private,再写一个private。
03:06
对应的盖赛的方法。重写兔子准。重写这个兔子润的话呢,是为了方便我们进行测试。Private。问。Brand。哎。Private。Doubled prices。爱赛的方法。重写兔子准。这个时候呢,这里边儿再重新出题。
04:05
我们前面这个配置文件呢,已经很复杂了哈,我们搞一个新的配置文件。创建bin的配置文件,这个名呢叫B。Owa。好的。我们先来配置。我们使用。这个P命运空间来配置属性。T北。
05:02
P。应该有个street吧,是吧。咋没出来呢?应该是有的。那。搞一个。ID。Class。一行奥贝尔里边的。不。买。T。大哥。三十万十百千万是吧,OK。这边的话呢,再来配一个。
06:03
ID。啊。Person auto。STEM。OK,现在的话呢,先进行自动的。装配,我们先行手工的装配。第address reference指向address。接下来。一。二。Reference指向car。完。进行测试。Application。Context。等于68XL plus。
07:02
Pass at night。As X application context。我看。OK。然后的话呢,我们搞到的是。等于ptx.net。一个。你看这个汤姆address a car没问题,这是我们前面已经搞过很多遍的是吧啊。我来配置了一个address,配置了一个car,然后的话呢。我们这个指定了address指向谁,卡指向谁,现在呢,我把这个去掉,我们干什么呀,我要进行自动。
08:06
Out。大家看这个时候的话呢,我指定一个by name。根据名字装配。我们到我们那person里边来,我们注意到person里边的叫set address。这个叫set car,那么我在这个LC容器里边,我是不是配了一个address,配了一个car啊?根据名字嘛,这个时候这个B的名字刚好跟我那个张阿B风格的这个属性名一致,所以说这个时候它也能配起来走一个。大家看。没问题,好了,我把这个名字改一下。没找。你们来了吧?根据名字进行自动的装配,By name。
09:02
可以。使用。Auto。Fair。属性指定。自动。装配的。方式,那么I name。根据。B的名字和。当前病的。Sat风格。的属净名。地形。自动。配,那如果要是有能够对得上的,OK,没有能够对得上的,他就配不进来对吧。说若有匹配的,若有匹配的。
10:01
The。装配。的进行自动装配说若没有匹配的。得。状态。下边我们再看,这个叫I type。Missa。根据类型装备。根据。病的类型和。当前病啊。属性的类型。进行自动。装配OK,找一个,那说这个名字对不上的话,这个类型是不是能够对得上啊。看一看。
11:01
啊,没问题,能够配得上。好了,但是这个backup呢,有一个问题,有一个啥问题来。我再配一个,大家看哈。我配了啊。配了两个dress。好,配了两个再找。查看。是不是没有办法装配上啊,为什么呀?他说什么?因为这个address并不是唯一的。对吧,他不是唯一的就不行。有俩。所以说我要是按这个类型装配的话,如果当前的这个LC容器里边有两个类型一样的。LC东西就怎么样,他就不知道去装配哪个了,是吧,这个时候的话呢,会跑异常说。
12:00
AOC。容器中有。一个。以上吧。类型啊,类型匹配。啊B则抛异常,因为这个时候怎么了,这个时候他不知道哪一个状态。所以说这两个的话呢,是各有优缺点,一个是by name,一个是by type。Constructor这个的话呢,我们就不说了哈。大家感觉这个自动动会怎么样?挺方便的吗?那实际上的话呢,它是有缺点的,看一下有什么缺点。自动装配的缺点。这样的我们看哈,我们这个outwa呢,是配置在这个bin的级别上。所以说一旦要是指定了以后的话,我就得为我当前B的所有的引用属性都使用自动装备。
13:07
不能说啊,我有的用,有的不用,这个不行,必须都使用。第一个缺点。第二个缺点,你一旦要指定了这个装配方式,要么是by type,要么是by name,而不能够两者兼而有之。这也是一个缺点,不够灵活。看我们PPT啊,我们说的第一点和。第二点,那实际上开发,在实际开发的时候呢,我们实际上很少使用这个自动装配的功能。因为跟这个自动中配给我们带来的好处相比,这个明确清晰的配置文档更有说服力一些,但是我们在这个整合第三方框架的时候,有的时候我们的确是使用这个,嗯,奥贝尔那个时候的话呢,会给我们带来一些方便。在我们讲后续整合其他框架的时候的话呢,我们会提到他。
我来说两句