談談AOP在緩存設計上的應用

我們知道,AOP所體現的,就是一種攔截→放行的思想,底層是基於JDK或CGlib的動態代理實現的,其應用場景非常多:日誌記錄、權限控制,事務管理以及今天所要說的緩存。

談談AOP在緩存設計上的應用

上圖就是代理對象與真實對象之間的關係,外界通過代理對象與真實對象進行交互,對於外界來說,代理對象就是它所需要的真實對象,外界不關心它真正是誰,只要提供它所需要的接口即可。

那麼,我們是否可以在代理對象與真實對象之間的通道中,加入一箇中間層,來實現緩存?

談談AOP在緩存設計上的應用

或許叫法並不準確,但我們可以通過這個中間層,記錄參數與結果的映射關係,並存儲在主存中,這樣對於一些計算代價大的場景可以顯著提升性能。

但,緩存的有效期怎麼辦?緩存在何時才應該進行刷新,這是個令人頭疼的問題’,或許這點,我們可以從mybatis中找到答案,相關內容將在以後的文章深入說明。


分享到:


相關文章: