你们在项目开发过程当中,或多或少都用过缓存,为了减小数据库的压力,把数据放在缓存当中,当访问的请求过来时,直接从缓存读取。缓存通常都是基于内存的,读取速度比较快,市面上比较常见的缓存有:memcache、redis、mongodb、guava cache等。html
你们使用缓存时,经常使用的逻辑时这样的:redis
每个使用缓存的场景,上面的逻辑都要重写一遍,是否是很烦躁,是否是很浪费时间。有没有简单的方法完成上面的逻辑?固然有了,这就是今天要向你们介绍的Spring Cache。mongodb
Spring Cache并不神秘,并且使用起来很是的方便。它是注解组成的,最经常使用的一个注解是@Cacheable。这个注解是在方法上使用的,当使用了注解的方法被调用时,会先从缓存中查询,若是缓存中不存在,则执行方法,而后将方法的返回值放入缓存中。具体的使用方法以下:数据库
首先,咱们在IDEA中使用Spring Boot搭建环境,在选择依赖的页面中,咱们选择了Lombok和Cache,最主要的选择Cache哦~ 项目搭建完毕后,咱们看一下pom.xml的依赖:浏览器
咱们看到在依赖中自动添加了cache。接下来咱们要在SpringBoot的启动类上加上使用cache的注解@EnableCaching,如图:缓存
而后咱们编写测试的controller,以下:并发
咱们使用@RestController注解,因此它返回的是Json格式的结果。而后在方法上使用了@Cacheable注解,这是咱们今天的主角。测试
还有其余的关键字,在这里没有列出来,好比:spa
咱们启动项目,并在浏览器第一次访问http://localhost:8080/cache/test?name=allen,结果响应很慢,过了5秒后,页面显示结果:线程
咱们在看一下后台日志:
打印语句打印出来了,说明第一次访问时,是执行了方法的。咱们再在浏览器请求相同的地址,结果返回了相同的结果,并且后台没有打印出日志,和上面两张图如出一辙。说明此次请求走了缓存,方法并无执行。
怎么样?@Cacheable很好用吧,你们赶快动手,在项目中实践一下吧,有问题评论区留言哦
原文出处:https://www.cnblogs.com/boboooo/p/11248145.html