@Cacheable注解使用 - 缓存查询数据

@Cacheable既作用在方法上,也就用在类上。当作用在方法上是只对该方法有用,作用在类上时,对该类的所有方法都有效。

示例:

controller:

    @GetMapping("test_cache")
    public String testCache(@RequestParam String flag){
        String s = countryService.testCache(flag);
        return s;
    }

service:

String testCache(String flag);

serviceImpl:

    @Override
    @Cacheable(cacheNames = {"test.one.two"}) 
    //@CachePut常用与更新操作;  @CacheEvict常用删除操作;
    public String testCache(String flag) {
        log.info("flag={}",flag);
        int timeCount = (int) (Math.random() * 1000);
        log.info("timeCount={}",timeCount);
        return String.valueOf(timeCount);
    }

以 flag=a 为参数。连续调用两次controller中的接口,结果只打印出一次请求记录。

当换 flag=b 为参数时,控制台再次打印。但是,再执行一次就不再打印了。

说明相同的参数指指向一次就把结果缓存起来,等下次调用方法时,直接将所保存的缓存返回。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值