在春季摘要豆從抽象類有所不同。事實上,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>
和類:
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
豆沒有定義一個類。把抽象的豆子,以此來減少重複的XML時的一些具體豆有相同的依賴關係。
應該注意的是抽象的Bean不會由Spring實例化 – 2017-07-07 10:12:25