Web应用程序中Hibernate会话工厂的范围应该是什么?我在猜测HTTP会话范围,这是正确的吗?
上下文:我有一个使用Hibernate的spring web应用程序。我继承了多年的旧代码,很久以前老开发人员已经离开了。代码似乎是为应用程序使用全局hibernate会话工厂。这对我来说似乎不对,因为这样一次只允许一个用户与数据库通信。
答案 0 :(得分:1)
应该是应用范围。 Sessionfactory就像一个连接池,它为你生成hibernate会话。 它是一个昂贵的创建对象,你不应该在应用程序生命周期中创建它超过一次。 每个请求都从会话工厂获取会话,并通过会话而不是会话库来执行所有数据库操作。