配置一切正常,我采用的是用Spring的AOP 来直入事务
sessionFactory:hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
但当我<bean id="sampleService" class="com.hzyl.sample.service.SampleService" init-method="init" />
init 方法会查询数据库,sessionFactory.getCurrentSession();
的时候就会出现异常:当前线程中没有找到session
但如果不在这调用init 方法,等程序启动完毕之后再调用init就没有问题
我测试了
sessionFactory:hibernate.current_session_context_class=thread
这样配置的话
调用init也是正常的,就证明init-method="init" 的时候 spring 还没有 绑定好session ,此时线程中的session 还是在hibernate中求解
sessionFactory:hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext
但当我<bean id="sampleService" class="com.hzyl.sample.service.SampleService" init-method="init" />
init 方法会查询数据库,sessionFactory.getCurrentSession();
的时候就会出现异常:当前线程中没有找到session
但如果不在这调用init 方法,等程序启动完毕之后再调用init就没有问题
我测试了
sessionFactory:hibernate.current_session_context_class=thread
这样配置的话
调用init也是正常的,就证明init-method="init" 的时候 spring 还没有 绑定好session ,此时线程中的session 还是在hibernate中求解
一切也都正常!
但当我 我 在 一个bean 中! 使用它的 init-method属性 去初始化一些东西的时候(访问数据库),就会抛出异常:当前线程中没有找到session,
所以才出现,我采用的方式是 在web.xml去做一个监听,由监听来来处理,但感觉比较麻烦