2013-04-15 106 views
1

我想在緩存和非緩存模式之間切換運行時間。我知道這是可能的通過刪除標籤。但是這需要重建源代碼/重新部署。如果我發現infinispan緩存有一些異常錯誤(超時或節點無法訪問 - 我正在使用infinispan熱棒),我需要切換到非緩存模式。使用infinispan的spring緩存

是否可以擴展spring cacheinterceptor並返回null值,以便應用程序可以從數據庫中獲取值。基本上所有對cacheinterceptor的調用都應該被忽略。

感謝您分享這些信息,如果您有任何相似的事情。

回答

0

我認爲這個問題至少有兩種解決方案。首先,您可以創建自己的CacheInterceptor實現並將切換代碼放在那裏。然後你需要指示Spring使用你的自定義CacheInterceptor。 ProxyCachingConfiguration班可能是開始調查的好地方。

第二種解決方案是修改Infinispan Spring集成代碼並在其中添加交換功能。爲了達到這個目標,你必須重寫SpringRemoteCacheManagerFactoryBeanSpringRemoteCacheManagerSpringRemoteCache。我會建議把切換代碼放在SpringRemoteCache#get中。