1、在Spring+Hibernate里,我见别人写*DAO类时都直接或间接继承HibernateDAOSupport类,然后使用它的getHibernateTemplate()方法。我看了HibernateDAOSupport类,看到这个方法只是简单的返回hibernateTemplate,
public final HibernateTemplate getHibernateTemplate() {
return this.hibernateTemplate;
}
而构造方法里也没有设置hibernateTemplate,我想应该返回空值,我在*DAO类里直接测试时也是返回空值。
疑问:是不是你们在get之前都set了一下,或者是spring自动从配置文件中获得(如果是这样,它又是怎么获得的)?2、在applicationConfig.xml文件中,我们定义*DAO的bean时,都要加上sessionFactory的Property,而*DAO里和继承的HibernateDAOSupport里都没有这个属性,只有hibernateTemplate属性。
疑问:为什么要设置sessionFactory?
Spring读取配置的机制又是什么呢?
public final HibernateTemplate getHibernateTemplate() {
return this.hibernateTemplate;
}
而构造方法里也没有设置hibernateTemplate,我想应该返回空值,我在*DAO类里直接测试时也是返回空值。
疑问:是不是你们在get之前都set了一下,或者是spring自动从配置文件中获得(如果是这样,它又是怎么获得的)?2、在applicationConfig.xml文件中,我们定义*DAO的bean时,都要加上sessionFactory的Property,而*DAO里和继承的HibernateDAOSupport里都没有这个属性,只有hibernateTemplate属性。
疑问:为什么要设置sessionFactory?
Spring读取配置的机制又是什么呢?
2.请查看hibernateDAOSupport的父类
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
</bean>“我见别人写*DAO类时都直接或间接继承HibernateDAOSupport类”这里是使用了opensessioninview的策略,建议楼主学习下。
2、尚不明。