在applicationContext.xml中配置如下:<!-- 第一种配置 -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="userRegisterDAO" class="com.dao.impl.UserRegisterDAOImpl">
<property name="hibernateTemplate" ref="hibernateTemplate"/>
</bean><!-- 第二种配置 -->
<bean id="userRegisterDAO" class="com.dao.impl.UserRegisterDAOImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
请问上面的两种配置有什么区别没有?
Spring的配置太多了,都搞晕了
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="userRegisterDAO" class="com.dao.impl.UserRegisterDAOImpl">
<property name="hibernateTemplate" ref="hibernateTemplate"/>
</bean><!-- 第二种配置 -->
<bean id="userRegisterDAO" class="com.dao.impl.UserRegisterDAOImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
请问上面的两种配置有什么区别没有?
Spring的配置太多了,都搞晕了
这个里面到底是 sessionFactory 还是 hibernateTemplate 属性?
楼主的第二种配置我用过 第一种没用过 不过我个人认为 2种配置原理都是一样的
第一种配置中是将hibernate与spring继承的辅助类org.springframework.orm.hibernate3.HibernateTemplate 放到spring容器中进行实例化,然后再注入给UserRegisterDAOImpl类
那么在你的应用中就可以用HibernateTemplate 类进行持久化相关的操作第二种配置是在你这个类UserRegisterDAOImpl 继承了HibernateDaoSupport之后 可以这么配置原理就是你继承了HibernateDaoSupport之后,可以注入SessionFactory 之后再应用中就可以使用
this.getHibernateTemplate()方法拿到模板 具体内容LZ 可以看一下HibernateDaoSupport 分析一下就会明白了.表达能力有限 说的不是很好 见谅!
UserRegisterDAOImpl 里只是继承了HibernateTemplate
第一种配置:注入 HibernateTemplate 可以直接访问注入对象操作句柄!
第二种配置:Dao继承HibernateDaoSupport,同样可以获取操作句柄!想明白其中的不同,可以直接查看源代码!楼上 yuhonggood 正解,详细的你可以自己领悟一下!