2009-10-05 69 views
1

我使用了Ehcache和Hibernate,我想用阻塞或SelfPopulating緩存,以避免http://ehcache.org/documentation/constructs-0_5.html#mozTocId722946使用的Ehcache阻塞裝飾與Hibernate

昂貴的操作提出的問題是必需的,說的渲染一個大型的網頁,需要30秒。該網頁在5分鐘之前才被視爲陳舊。該頁面非常沉重,每5分鐘將會平均每分鐘打20次。

我必須以編程方式做,因爲http://ehcache.org/documentation/cache_decorators.html暗示還是有一個聲明(XML格式)的方式來做到這一點?

非常感謝

+2

我想借此機會指出'ehcache'是一個迴文。 – 2009-10-05 09:34:42

回答

1

有沒有辦法做到這一點在ehcache.xml由於讀取緩存配置之前,您必須註冊與CacheManager類。

因此,您必須使用文檔中提到的代碼,並且在您對Hibernate進行任何操作之前必須運行此代碼。一個簡單的方法是使用hibernate.cache.provider_class屬性,它告訴Hibernate緩存的工廠。看看source of an implementation這應該給你一個想法,你需要做什麼。

+0

非常感謝您的洞察力。我已經使用SingletonEhCacheProvider,並且實現是final的(我不能擴展它)。我應該複製代碼還是自定義servlet過濾器來完成這項工作? – cherouvim 2009-10-05 08:53:09

+0

您應該複製代碼。 – 2009-10-05 13:02:38