Spring Security的權限緩存與數據庫管理有關,都是在用戶認證上作文章,所以都與UsrtDetailsService有關。redis
與數據庫管理不一樣的是,Spring Security提供了一個實現了UsrtDetailsService的緩存類CachingUserDetailsService。數據庫
CachingUserDetailsService緩存
1:構造函數接受了一個真正用於加載UsrtDetails的實現類UsrtDetailsService。ide
當須要真正加載UsrtDetails時,會首先從換成中獲取,若是緩存中沒有對應的UsrtDetails存在,則使用持有的UsrtDetailsService實現類進行加載,而後將加載後的結果存放在緩存中,UsrtDetails與緩存的交互式經過UserCache接口來實現的,CachingUserDetailsService默認擁有一個UserCache的空引用實現NullUserCache。當緩存中不存在對應的UsrtDetails時,將使用引用的UsrtDetailsService類型的delgate來加載,加載後存放在緩存中,並返回。函數
除了NullUserCache,Spring Security還爲咱們提供了EhCacheBasedUserCache。spa
以上這兩種cache是Spring Security提供了,咱們爲了更好的實現緩存,可能會使用redis等。3d