00:00
下面呢,我们来说一下配置并里边这个病之间的关系。包括两个,一个是继承,一个是依赖。先说这个继承。这个继承呢,并不是我们面向对象里边说那个继承就是负类此类expense不是那个,它指的是配置上的继承。OK,我们先来看代码。我首先呢来创建一个spring的配置文件。Religion。下一步把这个导进来,下一步finish。我们用的这个B呢,Outbe用这个outbe里边的哈,我们首先我们来配置一个。Address。水属茎。
01:02
北京。配置跌宕。五道口。我再来配置一个dress。非得啊,这个还是北京。但街道不一样了哈。T。这个叫大钟寺。好了。跑起来看看效果。包名呢叫。
02:03
我直接把这个妹复制过来。Person就算了哈。这个叫C。找一个rise。等于CDx.B。注意。Disolve。再来一个。Address too。起来。大家看北京,一个是五道口,一个是大钟寺,没问题。我们翻过头来,我们来看这个配置文件。
03:00
大家看我这两个address的配置,大部分的这个属性配置是不是都一样啊。ID肯定不能一样了,是吧,Class是一样的,是一样的,这个street不一样。哎,那这个时候的话呢,我们可能就会想是吧。我有没有可能在我配置这个address to的时候,我把这个address这个配置拿过来呢,就是说这个我不配了,跟什么一样的是吧。这个我也不配了。不使用上面的配置。实际上就是配置配置之间的一个继承。不是parent。北京。带一个标记带着哦。OK。就是位置继承。并配置的议程使用什么呀?使用in啊。
04:02
RR主。指定。一城哪个印的配置?Bpd。Spring呢,允许继承病的配置。被继承的病称之为父鬓,继承这个父鬓的鬓称之为子鬓。并不是我们说那个父类子类没有那个意思哈,子病从复病里边继承配置。啊,包括B的属性的配置,我们这里边的话呢,我们实际上这个继承了这个class,也包括这个属性值city的这个配置啊都继承下来了。子病也可以覆盖重复鬓继承的配置,比方说我这块这个。City是北京是吧,不改的。City。写一个。北京有那个标记哈,搞一搞。
05:02
有一个没有OK。复并呢,可以作为一个配置模板。也可以。作为这个B的实例,那我们这个里边我们这个address怎么了,实际上的话呢,它是一个实例出现的,这个时候我们可以完全把这个B给它配置为一个。模板模板模板是什么意思啊?模板就是说,哎,我不希望你有实力了,这个时候我们可以当成一个主定abtra等于to。加上这个的话呢,就是一个抽象宾,这个时候这个抽象宾是不能够被实例化的,它就是用来被继承的。走一个。看这个时候它出了一个错,出了一个什么错啊,创建这个address时候出错了是吧,因为它是抽象的,我们把这个给它去掉。Men。
06:02
这种。OK,没问题。这就是我们所谓的这个叫抽象病,这个抽象病和那个抽象类倒是有一点像是吧。抽象类不能被实例化,这个抽象B呢啊,在LC容器里边也不能被实例化。抽酱饼。装病的属性。Abstract。属性为。处的饼的饼。不能被LC容器。绿化。只用来。B。被继承。就是我们所谓的叫欧降。
07:03
如果要是想作为一个模板的话呢,我们可以把这个bin的tract设为true就可以了,这样的话呢,这个B就。不会被实例化了,但我们这个作为抽象的并不合适是吧,这个时候你可以呃,把这个abstract也去掉。放在这这个时候的话呢,这个抽象并是很不错的,这抽象币里边我们怎么样,我们甚至都没有指定这个S。那只是指定的这个属性是吧,那。我们再说一下,说弱。某一个B的class。属性没有指定则。必须是一个。抽象B就是一个模板,好,我们先找一下哈,看看结果。有个结果是没问题的,这个时候我要把这个去掉的话,还不行了呢。
08:05
忘了吧,行。因为我没有指定这个class属性。OK。好,我们可以忽略B的拉属性,那这个时候的话,它真的就是一个模板B。这个时候必须指定abstract为true。还有一条就是并不是B里边的所有属性都会被继承,比方说这个abstract就不会被继承是吧,那继承它的时候,如果我要这个也继承的话,那我这个时候我这个币是不是也是一个抽象病了呀。这个很明显是不可能的。OK,以上的话呢,就是我们说的这个B之间的继承关系,这个继承指的是配置上的继承,就是说诶这块的话呢,我指定了city跟这个呃,Street,那我在这个下面配置的时候,我要是不指定这个city跟street的话,就当译成上边这个的配置。
09:02
一个。啊,北京上面的五道口上面的,那我们还可以再去配置其他的宾。比方说啊。这个病呢,我叫吧。一个叫三来指定一个。T。方说。指定是对的,等于二四。是可以的。这个打开。这个改为赞。这种。没有问题。五道口跟大钟寺。好的,这是病之间的继承关系,我们再来看病之间的依赖关系。既然说到这个病之间的依赖关系的话呢,我们在这个里边,我们再来配置一个。
10:15
奥贝尔里边的。我们指定name。指定他的。Address。Dress OK,字写好,走一个。是这个哈,这个。这个包名导的对不对啊。对。里边。
11:02
强转哎。哎哟。他说什么了?创建address出错了哦,这个address是抽象的,所以说的话呢,应该指向address to。对,看。OK com address。Hard now。这样这个配置就配完了是吧,我的确没有指定卡。那我现在的话呢,我有一个要求哈。要求什么呢?不是这个。有一个要求啊,要求什么呢?要求我这个。而且我这个person啊,必须有一个关联的才可以。要求。在。位置。
12:00
十。必须有一个。关联的。必须有,我如何指定这个必须呢?就说什么呀,哎,我依赖于这个卡这话说。P。In。依赖于。Car这个病就我来写一下啊,大家看,依赖于depends on,依赖于一个car,必须有这个car,没这个卡的话呢,我在初始化的时候有问题。找一个。大家看出错了吧,什么错啊,往后找,因为这个car呢没有被定义,我来配置一下。IR。
13:06
附近。奥迪。价格单转。快手。不是哈,应该应该值是多少啊是吧。值等于二,不是F。好。哎,这个时候就没有问题了,这就是我们所谓的这个叫嗯病之间的依赖关系,我这个person呢,依赖于这个坎。懂这个意思吧,这个时候如果我在LC容器里边没有这个卡的话,那么在这个LC容器初始化的时候就会报充。看PPT。允许通过depends on属性设定B前置依赖的B。前置依赖的B会在本币本病实例化之前创建好。如果需要依赖于多个B的话,可以通过逗号或者是空格指定多个B。
我来说两句