我打算在我的負載平衡Web應用中使用分佈式緩存。 所以我將嘗試抽象出apache ehcache和memcached之間的通用函數。如何抽象出2個不同的緩存實現
我的目標是能夠做一個簡單的配置開關來選擇要使用的緩存解決方案。我應該去SPI路線,例如比如XML解析器如何連線?
我打算在我的負載平衡Web應用中使用分佈式緩存。 所以我將嘗試抽象出apache ehcache和memcached之間的通用函數。如何抽象出2個不同的緩存實現
我的目標是能夠做一個簡單的配置開關來選擇要使用的緩存解決方案。我應該去SPI路線,例如比如XML解析器如何連線?
從我的頭頂......
我相信這就是所有你需要的結構,使它能夠可靠地工作,並且你可以隨時擴展它,只要你覺得這樣做。
修復界面後,這確實是一個創建模式問題。依賴注入是我的最愛,如果緩存選擇策略是動態的,你可以使用spring bean工廠在運行時決定。 Spring支持Web應用程序中的「會話」範圍,這意味着如果您願意,您可以讓工廠根據每個會話進行決策。
否則一個簡單的服務定位器也應該這樣做。
Spring也有一個緩存提供程序模塊,它完全符合您的要求。不過,我只是不確定是否支持memcached。即使不是這樣,爲它編寫適配器也可能比手動滾動自己的界面要少。見https://springmodules.dev.java.net/docs/reference/0.8/html_single/#cache