【发布时间】:2012-08-18 04:51:01
【问题描述】:
Web 应用程序中 Hibernate 会话工厂的范围应该是什么?我猜是 HTTP 会话范围,对吗?
上下文:我有一个使用 Hibernate 的 Spring Web 应用程序。我继承了多年的代码,而老开发人员很久以前就离开了。该代码似乎正在为应用程序使用全局休眠会话工厂。这对我来说似乎不对,因为这一次只允许一个用户与数据库对话。
【问题讨论】:
标签: hibernate
Web 应用程序中 Hibernate 会话工厂的范围应该是什么?我猜是 HTTP 会话范围,对吗?
上下文:我有一个使用 Hibernate 的 Spring Web 应用程序。我继承了多年的代码,而老开发人员很久以前就离开了。该代码似乎正在为应用程序使用全局休眠会话工厂。这对我来说似乎不对,因为这一次只允许一个用户与数据库对话。
【问题讨论】:
标签: hibernate
应该是应用范围。 Sessionfactory 就像一个连接池,它为你生成 Hibernate 会话。 它是一个昂贵的创建对象,您不应在应用程序生命周期内多次创建它。 每个请求都从会话工厂获取会话,并通过会话而不是通过会话工厂执行每个 DB 操作。
【讨论】: