研究spring的源代码主要是想搞明白 HibernateTemplate到底怎么样工作的.
在项目中经常会这样使用
用HibernateCallback 回调的方法管理数据,为什么要这么做了?这样做的好处在于,首先对数据库的操作难免会用到对事务进行操作,涉及到事物操作就有一个对session进行打开关闭的问题,通过HibernateTemplate完全就不用担心session有没有关闭,资源有没有浪费,她可以正确的自动实现session的打开和关闭,并且自动参与事务操作。Template线程是安全的,可重用的,而且可作为外部类的实例变量打开而被保持。
HibernateTemplate源码
isSessionTransactional返回一个可操作事务的session,用HibernateCallback 回调管理数据.
SessionFactoryUtils
通过源码一分析所有困惑迎刃而解.在项目实际应用中可以这样配置,让Template去管理session ,操作事务。