我这里没有使用Redis作为缓存组件,直接使用的ConcurrentHashMap
,有条件的同学可以替换成Redis,效果会更好。
SysConfigCacheManager
在继承AbstractCacheManager
之后,需要实现getCacheInfo
、loadingCache
、getSize
、getCacheName
四个方法,其中getCacheName
是该缓存处理器的基础信息,为了防止loadingCache
出现读写问题,我加了一个可重入锁。
我在例子中没有连接数据库,实际上只要将SysConfigCacheManager
的CACHE的数据从数据库读取就可以实现了。我这里只写了一个SysConfigCacheManager
,实际业务中可以写很多个处理器,只要继承AbstractCacheManager
即可,不过要注意getCacheName
的名字不要重复了,不然CacheManagerRegistry
只会取最新的一个。
最后提醒大家一下,这个是本地缓存哈,不支持分布式的。
最后说一句(求关注!别白嫖!)
如果这篇文章对您有所帮助,或者有所启发的话,求一键三连:点赞、转发、在看。
关注公众号:woniuxgg,在公众号中回复:笔记 就可以获得蜗牛为你精心准备的java实战语雀笔记,回复面试、开发手册、有超赞的粉丝福利!