SingletonEhCacheRegionFactory vs EhCacheRegionFactory

2022-09-01 07:53:47

这个链接(来自Ehcache的创建者)说,当你只有一个Hibernate SessionFactory时,你应该使用SingletonEhCacheRegionFactory,当你有多个Hibernate SessionFactory时,你应该使用EhCacheRegionFactory。

但是,当你只有一个SessionFactory时,EhCacheRegionFactory难道不是一个实例吗?

那么,SingletonEhCacheRegionFactory有什么更好的呢?为什么不一直使用EhCacheRegionFactory,因为它可以用于一个会话站点或多个?

仅供参考:我使用的是 Ehcache 2.4.2 和 Hibernate 3.6.5


答案 1

非单例 EhCacheRegionFactory 允许您使用 net.sf.ehcache.configurationResourceName 属性为每个 Hibernate 实例单独配置 EHCache。SingletonEhCacheRegionFactory 在所有 Hibernate 会话工厂中共享相同的 EHCache 配置。

EHCache 文档建议使用非单例版本。

编辑:此信息适用于 EHCache 2.8。不确定最新版本中发生了多少更改。


答案 2

我想通过使用SingletonEhCacheRegionFactory,你不需要维护(或确保)EhCacheRegionFactory是一个单例。您可以在任何地方创建新的 SingletonEhCacheRegionFactory(),并且它仍然是整个应用程序中的单例。

使用 EhCacheRegionFactory 时,您需要相应地显式配置对象的作用域,以确保它是单例。


推荐