缓存使用
- 在工作中负责的业务模块会依赖其他的业务模块提供的配置信息,这些配置以前往往是通过HashMap缓存到系统内存中,但是代码比较零散如
后来发现spring-cache可以很简洁的进行缓存,引入spring-cache的缓存pom,在项目中启动类中开启缓存,就能直接使用如下:
在启动类中开启缓存添加@EnableCaching注解即可:
业务中使用缓存
简单明了很喜欢这种风格,特意研究了一下spring-cache的实现原理。
Spring-Cache原理
spring-cache的思维导图结构如下:
这里的核心就是利用AOP机制将方法囊括起来,通过添加自定义注解来抽象重复的缓存方法。
最重要的是cacheManager与cache,如果把 Spring Cache 比作「图书馆」,那:
- CacheManager = 图书馆管理员:负责管理所有书架(缓存空间),知道每个书架的位置、用途,能帮你找到需要的书架,还负责书架的初始化(比如新书架组装)和维护(比如定期整理)。
- Cache = 主题书架:比如 “历史类书架”“计算机类书架”,每个书架有唯一名称,只存放对应类别的书籍(缓存数据),并提供 “取书(get)、放书(put)、删书(evict)” 的操作。
简单来说:你(开发者)想操作缓存时,不需要直接找 “书架”(Cache),而是先找 “管理员”(CacheManager)要对应的 “书架”,再通过 “书架” 操作数据 —— 这就是二者最核心的协作逻辑。 下一篇文章将讲述如何具体使用不同的cacheManager与cache来实现缓存。