这一节的主要内容是整合Spring Cache。
引入Spring Cache依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
注意,因为我们要使用redis作为缓存,所以还要引入redis的依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
在配置文件中配置cache.type。
spring.cache.type=redis
这个配置表示我们会使用redis作为缓存。
在启动类上加上如下注解。
@EnableCaching
在浏览器中输入"localhost:10000",第一次访问时后台接口会查询数据库,查询结果返回的同时写入redis缓存。
后台打印了方法中的日志,说明查询了DB。
缓存的名字::SimpleKey::[]
因为我们在注解中设置的缓存分区名称是category,所以默认生成的key的名称是:category::SimpleKey [ ]
。
虽然,我们并没有在代码中将查询结果存入redis中,但是在Spring Cache的支持下,方便快捷的实现了这一结果,使得代码简洁易读、更容易维护。
显然,有些配置需要修改,比如:
如下,通过Cacheable注解的属性key来进行设置,注意key中的值会被当做Spel注解进行解析,如果是字符串,需要用单引号包裹。
@Cacheable(value = {"category"}, key = "'Level1Categorys'")
过期时间需要在配置文件中配置,单位是毫秒,下面配置过期时间是一个小时。
spring.cache.redis.time-to-live: 3600000
重新访问localhost:10000,查看redis,可以看见如下key。
查看这个key的过期时间,存活时间还剩3423秒,说明我们的配置已经生效。
因篇幅问题不能全部显示,请点此查看更多更全内容