spring抽象的“true”是什么意思?

spring抽象的“true”是什么意思?,第1张

spring抽象的“true”是什么意思?

Spring中的抽象bean与抽象类有所不同。实际上,Spring中的抽象bean甚至不必映射到任何类。以此为例:

<bean id="dao" abstract="true">    <property name="dataSource" ref="dataSource"/>    <property name="someHelper" ref="someHelper"/></bean><bean id="fooDao"  parent="dao">    <property name="fooHelper" ref="fooHelper"/></bean><bean id="barDao"  parent="dao">    <property name="barHelper" ref="barHelper"/></bean>

And classes:

public class FooDao {    private DataSource dataSource;    private SomeHelper someHelper;    private FooHelper fooHelper;    //setters}public class BarDao {    private DataSource dataSource;    private SomeHelper someHelper;    private BarHelper barHelper;    //setters}

请注意,

FooDao
并且
BarDao
没有任何共同的父(无论是否抽象)基类。父抽象bean定义仅用于对公共属性进行分组,因此可以避免在XML中重复

另一方面,引入

Dao
既可以继承
FooDao
又可以
BarDao
继承的抽象类是一个好主意:

public abstract Dao {    protected DataSource dataSource;    protected SomeHelper someHelper;    //setters}public class FooDao extends Dao {    private FooHelper fooHelper;    //setters}public class BarDao extends Dao {    private BarHelper barHelper;    //setters}

但是

dao
bean 仍然不需要定义一个类。当多个具体bean具有相同的依赖关系时,将抽象bean视为减少XML重复的一种方法。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5147408.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存