此处讲的继承与依赖都是配置上的关系。
(1)继承
与Java里的继承很像,主要用于偷懒。比如同一个类,我想配置许多个该类的实例,传统的做法是:
<bean id="address" class="com.csu.autowire.Address"
p:city="ChangSha" p:street="ShaoShan" >
</bean>
<bean id="address1" class="com.csu.autowire.Address"
p:city="YueYang" p:street="ShaoShan">
</bean>
.........
这样代码很冗余,用上继承:
<bean id="addressPatern" class="com.csu.autowire.Address"
p:city="ChangSha" p:street="ShaoShan" abstract="true">
</bean>
<bean id="address"
p:city="YueYang" parent="addressPatern">
</bean>
把addressPatern当作一个模板,同时也是类似于父类的一个父bean,这个模子做好之后,其他bean加上parent=”addressPatern”则可以继承父bean的class,property(autowire 和 abstract不能继承)。
如果让addressPatern专门做模子,不允许产生addressPatern实例,则加上abstract=”true”,有点像Java的抽象类。
(2)依赖
还是用Spring-3中的例子,人 有 车,实际上就是 Person 依赖 Car,在配置Person时,用:depends-on=”car”,这样在实例化Person之前,IOC会先准备好一个car实例,如果有多个依赖可以用逗号隔开。