美文网首页springboot
Spring还可以这样用缓存,你知道吗?

Spring还可以这样用缓存,你知道吗?

作者: 牛初九 | 来源:发表于2019-07-26 08:44 被阅读0次

大家在项目开发过程中,或多或少都用过缓存,为了减少数据库的压力,把数据放在缓存当中,当访问的请求过来时,直接从缓存读取。缓存一般都是基于内存的,读取速度比较快,市面上比较常见的缓存有:memcache、redis、mongodb、guava cache等。

缓存的常规用法

大家使用缓存时,常用的逻辑时这样的:

  1. 根据条件生成key;
  2. 从缓存中读取数据,若成功读取数据,则返回;
  3. 若数据不存在,根据条件从数据库读取;
  4. 将从数据库中读取的数据放入缓存;
  5. 返回数据;

每一个使用缓存的场景,上面的逻辑都要重写一遍,是不是很烦躁,是不是很浪费时间。有没有简单的方法完成上面的逻辑?当然有了,这就是今天要向大家介绍的Spring Cache。

Spring Cache

Spring Cache并不神秘,而且使用起来非常的方便。它是注解组成的,最常用的一个注解是@Cacheable。这个注解是在方法上使用的,当使用了注解的方法被调用时,会先从缓存中查询,如果缓存中不存在,则执行方法,然后将方法的返回值放入缓存中。具体的使用方法如下:

缓存还可以这样玩 你知道吗?

首先,我们在IDEA中使用Spring Boot搭建环境,在选择依赖的页面中,我们选择了Lombok和Cache,最主要的选择Cache哦~ 项目搭建完毕后,我们看一下pom.xml的依赖:

缓存还可以这样玩 你知道吗?

我们看到在依赖中自动添加了cache。接下来我们要在SpringBoot的启动类上加上使用cache的注解@EnableCaching,如图:

缓存还可以这样玩 你知道吗?

然后我们编写测试的controller,如下:

缓存还可以这样玩 你知道吗?

我们使用@RestController注解,所以它返回的是Json格式的结果。然后在方法上使用了@Cacheable注解,这是我们今天的主角。

  • cacheNames:当系统中有多个缓存时,指定该方法使用其中的哪几个缓存。
  • key:缓存的key,可以使用spEL表达式,上面的例子中,使用了入参name。

还有其他的关键字,在这里没有列出来,比如:

  • sync :true或false,当并发量非常大时,将同步开启,可以保证只有一个线程执行方法,其他线程将等待,然后从缓存中读取数据。
  • condition:使用缓存的条件。
  • keyGenerator:指定key的生成器。

我们启动项目,并在浏览器第一次访问http://localhost:8080/cache/test?name=allen,结果响应很慢,过了5秒后,页面显示结果:

缓存还可以这样玩 你知道吗?

我们在看一下后台日志:

缓存还可以这样玩 你知道吗?

打印语句打印出来了,说明第一次访问时,是执行了方法的。我们再在浏览器请求相同的地址,结果返回了相同的结果,而且后台没有打印出日志,和上面两张图一模一样。说明这次请求走了缓存,方法并没有执行。

总结

怎么样?@Cacheable很好用吧,大家赶快动手,在项目中实践一下吧,有问题评论区留言哦

相关文章

  • Spring还可以这样用缓存,你知道吗?

    大家在项目开发过程中,或多或少都用过缓存,为了减少数据库的压力,把数据放在缓存当中,当访问的请求过来时,直接从缓存...

  • SpringBoot2快速入门08--cache

    spring通过注解为我们提供了缓存功能,默认使用Ehcache,当然,也可以配置用其它的方式缓存,如redis,...

  • 九、SpringBoot集成缓存

    1、Spring缓存 1.1、缓存依赖 1.2、缓存注解 @EnableCaching:在主入口类上添加该注解,用...

  • Spring整合Ehcache管理缓存

    Spring整合Ehcache管理缓存 前言 Ehcache 是一个成熟的缓存框架,你可以直接使用它来管理你的缓存...

  • Spring Web MVC框架(十) HTTP缓存

    Spring的缓存控制类 合理利用HTTP缓存,可以提高应用程序的性能。Spring当然也对HTTP缓存提供了支持...

  • Spring整合Ehcache管理缓存

    前言 Ehcache 是一个成熟的缓存框架,你可以直接使用它来管理你的缓存。Spring 提供了对缓存功能的抽象:...

  • Spring的缓存机制

    Spring的缓存机制启用Spring缓存Spring内置缓存实现的配置EhCache缓存实现的配置使用@Cach...

  • spring中的缓存技术--Caching

    spring中的缓存--Caching 1.spring从3.1开始支持缓存功能。spring 自带的缓存机制它只...

  • 五、Spring 3.1新增的缓存机制

    启用Spring缓存: Spring配置文件专门为缓存提供了一个cache:命名空间,为了启用Spring缓存,需...

  • spring boot with cache

    简介 spring cache是spring为项目中的缓存提供的一种简便的解决方案。可以通过注解的方式设置要缓存的...

网友评论

    本文标题:Spring还可以这样用缓存,你知道吗?

    本文链接:https://www.haomeiwen.com/subject/udmxrctx.html