我阅读了 Spring 框架的 DAOSupport 类。但是我无法理解这些 DAOSuport 类的优点。在 DAOSupport 类中,我们调用 getXXXTemplate() 方法来获取特定的模板对象,然后将其进一步用于 DB 访问。
即使不扩展 DAOSupport,我们也可以在我们的类中注入 XXXTemplate。其余的事情将保持不变。
那么扩展 DAOSupport 类有什么好处呢?
编辑:- 添加示例类扩展了 spring 的 SimpleJdbcDaoSupport
public class JdbcDao extends SimpleJdbcDaoSupport {
public int create(Bb obj) {
getSimpleJdbcTemplate().update("insert into ..... ") //insert query
}
此类的 Bean 可以定义为:-
<bean id="jdbcDao" class="example.dao.support.JdbcDao">
<property name="dataSource"><ref local="dataSource"/></property>
</bean>
我们可以在不扩展 SimpleJdbcDaoSupport 的情况下创建一个自定义类,该类将具有 JdbcTemplate 类型的属性
public class MyDAO {
public myJdbcTemplate; // ant its getter and setter
public int create(Bb obj) {
getMyJdbcTemplate().update("insert into ..... ") //insert query
}
它的 bean 将被定义为:-
<bean id="jdbcDao" class="MyDAO">
<property name="myJdbcTemplate"><ref local="jdbcTemplateBean"/></property>
</bean>
正如你所看到的,两个类都做同样的事情。在扩展 SimpleJdbcDaoSupport 时,我们正在注入 DataSource,如果没有它,我们将直接注入 jdbcTemplate bean。而已。没有更多的区别。因此,我看不出如此多地使用 DAOSupport 类有什么好处。DAOSupport 类提供的任何附加功能?