Подтвердить что ты не робот

SingletonEhCacheRegionFactory vs EhCacheRegionFactory

Эта ссылка (от создателя Ehcache) говорит, что вы должны использовать SingletonEhCacheRegionFactory, когда у вас есть только один Hibernate SessionFactory, и EhCacheRegionFactory, когда у вас их несколько.

Но разве EhCacheRegionFactory не будет де-факто синглтоном, когда у вас есть только один SessionFactory?

Итак, что же лучше в SingletonEhCacheRegionFactory? Почему бы не использовать EhCacheRegionFactory постоянно, поскольку он может использоваться для одного или нескольких сеансов?

К вашему сведению: я использую Ehcache 2.4.2 и Hibernate 3.6.5

4b9b3361

Ответ 1

Не-singleton EhCacheRegionFactory позволяет настраивать EHCache отдельно для каждого экземпляра Hibernate, используя свойство net.sf.ehcache.configurationResourceName. SingletonEhCacheRegionFactory использует одну и ту же конфигурацию EHCache среди всех сессионных заводов Hibernate.

Документация EHCache рекомендует использовать версию, отличную от singleton.

Изменить:. Эта информация относится к EHCache 2.8. Не знаете, сколько вещей изменилось в последней версии.

Ответ 2

Я полагаю, используя SingletonEhCacheRegionFactory, вам не нужно поддерживать (или убедиться), что EhCacheRegionFactory является одноэлементным. Вы можете создать новый SingletonEhCacheRegionFactory() в любом месте, и он все равно будет синглом в пределах всего приложения.

В то время как с EhCacheRegionFactory вам необходимо явно настроить область объекта, чтобы убедиться, что она одиночная.