您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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" class="FooDao" parent="dao">
    <property name="fooHelper" ref="fooHelper"/>
</bean>
<bean id="barDao" class="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
}

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

Java 2022/1/1 18:17:12 有595人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶