web-dev-qa-db-ja.com

SingletonEhCacheRegionFactoryとEhCacheRegionFactory

このリンク (Ehcacheの作成者から)Hibernate SessionFactoryが1つしかない場合はSingletonEhCacheRegionFactoryを使用し、複数ある場合はEhCacheRegionFactoryを使用する必要があると述べています。

しかし、SessionFactoryが1つしかない場合、EhCacheRegionFactoryはとにかく単一のインスタンスではないでしょうか。

では、SingletonEhCacheRegionFactoryのbetterは何ですか? EhCacheRegionFactoryは1つまたは複数のSessionFactoryで使用できるため、常に使用してみませんか?

参考:Ehcache2.4.2とHibernate3.6.5を使用しています

33
Brad Cupit

非シングルトンEhCacheRegionFactoryを使用すると、net.sf.ehcache.configurationResourceNameプロパティを使用して、Hibernateインスタンスごとに個別にEHCacheを構成できます。 SingletonEhCacheRegionFactoryは、すべてのHibernateセッションファクトリ間で同じEHCache構成を共有します。

EHCacheドキュメントで推奨 非シングルトンバージョンを使用します。

編集:この情報はEHCache2.8に適用されます。最新バージョンで何が変更されたかわからない。

10
Matej

SingletonEhCacheRegionFactoryを使用することで、EhCacheRegionFactoryがシングルトンであることを維持(または確認)する必要がないと思います。新しいSingletonEhCacheRegionFactory()はどこにでも作成できますが、それでもアプリケーション全体でシングルトンになります。

EhCacheRegionFactoryを使用している間は、オブジェクトのスコープを明示的に構成して、シングルトンであることを確認する必要があります。

0
user591593