如何创建自定义Hibernate会话管理器?

时间:2018-06-01 12:34:27

标签: java spring hibernate threadpoolexecutor

我有一个基本要求: 1)需要一个hibernate会话管理器,每次打开和关闭时都会调用它,或者使用session执行任何其他操作。 2)它应该作为hibernate会话的包装器。 3)例如:我创建一个会话实用程序,它一次只允许创建5个会话,如果其中5个已经在使用,我的请求必须等到我回到5个会话之一。

1 个答案:

答案 0 :(得分:0)

确实没有必要编写一个特殊的会话管理器来执行此操作,因为您可以利用连接池轻松地为您处理此行为。

您首先需要做的是定义具有最大可用连接数的连接池,在您的情况下, 5 。然后,您希望配置连接池,使其具有合理的等待超时。只需了解此超时在拒绝服务攻击情形中可能会出现问题,因此请自行承担风险。

在正确配置连接池的情况下,如果前5个正在执行需要几秒钟并且第6个请求进入的长时间运行任务,它将等待从池中获取与数据库的连接,然后继续,所以您在任何时候都只能与数据库进行5次并发连接。