我有两个问题:
答案 0 :(得分:1)
Spring什么时候关闭Spring容器创建的SessionFactory类(SessionFactory在容器中定义)?
当您关闭ApplicationContext
(取消部署Web应用程序,正常关闭JVM等)时会自动完成。当容器关闭时,它会从{{1}调用destroy()
方法所有bean上的接口。其中一种方法在DisposableBean
:
LocalSessionFactoryBean
你根本不必为此烦恼。
Hibernate默认维护主缓存。缓存的范围是限于会话还是sessionFactory?我的意思是,什么时候释放主缓存的内存?
“主”缓存称为第一级缓存,并与会话绑定。第二级缓存是public void destroy() {
this.sessionFactory.close();
}
的全局缓存,但在SessionFactory
关闭时不会释放,因为很可能您正在使用某些外部缓存提供程序,如ehcache。如果是这种情况,还必须关闭EhCache以释放该内存。但是如果使用EhCache支持,这也应该由Spring容器处理。