【发布时间】:2012-11-30 23:31:59
【问题描述】:
我阅读了有关 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 类提供的任何附加功能?
【问题讨论】:
-
你能举例编辑吗?