020 springCache的使用

一 .概述

  在前面的一节之中,我们介绍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之中的方法,我们只需要观察控制台和页面的显示就能看到

    缓存之中的数据的变化.

猜你喜欢

转载自www.cnblogs.com/trekxu/p/9177859.html