1. 程式人生 > >談談AOP在快取設計上的應用

談談AOP在快取設計上的應用

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

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

那麼,我們是否可以在代理物件與真實物件之間的通道中,加入一箇中間層,來實現快取?

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

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