Spring 中的继承只是属性继承,定义为Abstract="true"的bean不会进行是实例化。
实例分析:
例1:
<bean id="absDao" abstract="true" class="com.baidu.sns.base.dao.SnsbaseDao" >
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>
<bean id="userBlackDao" parent="absDao" class="com.baidu.sns.blacklist.dao.UserBlackDao">
</bean>
在子类bean中 userBlackDao中,只是引用了父类Bean的 hibernateTemplate属性,这时父类bean: absDao可以用不用定义class属性的。
例2:
<bean id="absDao" abstract="true" class="com.baidu.sns.base.dao.SnsbaseDao" >
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>
<bean id="userBlackDao" parent="absDao">
</bean>
子类Bean: userBlackDao没有定义class属性,需要用父类bean中定义的class=“ com.baidu.sns.base.dao.SnsbaseDao”类进行实例化,所以此属性必须配置正确,此时可以在子类bean中覆盖父类bean的某些属性,实现自己的功能。
因此spring中的继承更像是Template模式。

3595

被折叠的 条评论
为什么被折叠?



