一 .概述
在前面的一节之中,我们介绍springcache的基本概念上的问题.本节,我们搭建一个环境,然后测试一下springCache的使用情况和需要注意的地方.
二 . 环境的搭建
本节,为了简单起见,我们重新配置一个springboot的项目.
@EnableCaching @SpringBootApplication public class SpringBootApplicationMain { public static void main(String[] args) throws Exception { SpringApplication.run(SpringBootApplicationMain.class, args); } }
我们首先在我们的主配置类之中加上我们自动开启缓存注解驱动.
@Service public class CacheService { /**该方法可以将传入的一个数据进行cache*/ //其中将数据缓存到cache缓存块之中 //键值对现在为value = value的形式 @Cacheable(cacheNames="cache",key="#value") public String cache(String value) { System.out.println("从方法之中获取["+value+"]"); return value; } //该方法调用完成之后,会将缓存中的数据进行更新 //注意,我们的返回值现在多了一个前缀 @CachePut(cacheNames="cache",key="#value") public String cachePut(String value) { return "cache"+value; } //该方法会在执行完成之后,删除掉对应key的缓存内容 @CacheEvict(cacheNames="cache",key="#value") public String cacheEvict(String value) { return value; } }
我们编写控制器:
@RestController public class CacheController { @Autowired private CacheService cacheService; @GetMapping("/cache/{value}") public String cache(@PathVariable("value")String value) { return cacheService.cache(value); } @GetMapping("/cacheput/{value}") public String cachePut(@PathVariable("value")String value) { return cacheService.cachePut(value); } @GetMapping("/cacheEvict/{value}") public String cacheEvict(@PathVariable("value")String value) { return cacheService.cacheEvict(value); } }
三 . 分析
在上面,我们分别写了三个缓存的方法.
[1]cache()方法:当第一次从缓存中获取数据的时候,会打印出一句话来,我们就使用这个作为标识,看缓存之中是否存在数据.
[2]cacheput()方法,会将缓存之中的数据更新为cache为前缀.
[3]cacheEvict()方法会将缓存之中的数据清除掉.
这样我们通过不断的调用Controller之中的方法,我们只需要观察控制台和页面的显示就能看到
缓存之中的数据的变化.