【DIY】實現一個快取管理器
阿新 • • 發佈:2019-02-11
Cache
這裡提供了兩種 Cache 工具,介面 Cache
- MemoryCache
- RedisTemplateService
RedisCacheManager
仿 Spring Cache
- @Cacheable 快取註解
- @CacheEvict 快取清除註解
- ~~ @CacheUpdate ~~ 這裡暫不提供更新的功能
使用 String.format + args
group
- Cacheable 用於儲存一類業務的快取
CacheEvict 用於清理一類業務的快取
原理:在redis中建立一個以 group 命名的 list
建立快取時,在 list 中 push 快取的key
刪除時,從 list 中獲取所有的 key,然後全部刪除
Demo
解決this不走快取
test中演示了一種方式:
private UserService getThis() {
return AopContext.currentProxy() != null ? (UserService) AopContext.currentProxy() : this;
}