当前位置: 首页 > news >正文

阿里云网站公安备案系统北京软件开发公司

阿里云网站公安备案系统,北京软件开发公司,一条 wordpress,网站加速器免费个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Spring Cache框架 简介Spring Cache 环境准备S…

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

Spring Cache框架

    • 简介
    • Spring Cache 环境准备
    • Spring Cache 常用注解使用



简介

  • Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。Spring Cache提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓存技术。
    CacheManager是Spring提供的各种缓存技术抽象接口。

针对不同的缓存技术需要实现不同的CacheManager:

在这里插入图片描述




Spring Cache 环境准备


  1. maven依赖导入:
        <!--缓存依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency><!--redis依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

  1. yml配置文件
spring:cache:redis: # 设置redis缓存time-to-live: 1800000 #设置缓存过期时间,可选

  1. 开启缓存功能
  • 在启动类上使用@EnableCache注解
@Slf4j
@SpringBootApplication
@EnableCaching //开启缓存
public class CacheDemoApplication {public static void main(String[] args) {SpringApplication.run(CacheDemoApplication.class,args);log.info("项目启动成功...");}
}

  1. 操作缓存
  • 在Controller层的方法上使用**@Cacheable、@CacheEvict、@CachePut**等注解,进行缓存操作。



Spring Cache 常用注解使用


在spring boot项目中,使用缓存技术只需在项目中导入相关缓存技术的依赖包,并在启动类上使用@EnableCaching开启缓存支持即可。


  • @EnableCaching
  • @Cacheable
  • @CachePut
  • @CacheEvict

在这里插入图片描述


  • 可使用用于动态计算密钥的Spring Expression Language (SpEL)表达式。

  • #result表示方法调用结果的引用。

  • #root.method, #root.target, 和 #root.caches分别用于引用方法、目标对象和受影响的缓存的缓存。

  • 方法名(#root.methodName)和目标类(#root.targetClass)

  • 方法参数可以通过索引访问。例如,第二个参数可以通过#root访问:#root.args [1]#p1#a1。如果信息可用,也可以通过名称访问参数



@CachePut注解 案例

    /*** CachePut:将方法返回值放入缓存* value:缓存的名称,每个缓存名称下面可以有多个key* key:缓存的key*/@CachePut(value = "userCache",key = "#user.id")@PostMappingpublic User save(User user){userService.save(user);return user;}



@CacheEvict注解 案例

    /*** CacheEvict:清理指定缓存* value:缓存的名称,每个缓存名称下面可以有多个key* key:缓存的key*/@CacheEvict(value = "userCache",key = "#p0")//@CacheEvict(value = "userCache",key = "#root.args[0]")//@CacheEvict(value = "userCache",key = "#id")@DeleteMapping("/{id}")public void delete(@PathVariable Long id){userService.removeById(id);}



@Cacheable注解 案例

    /*** Cacheable:在方法执行前spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中* value:缓存的名称,每个缓存名称下面可以有多个key* key:缓存的key* condition:条件,满足条件时才缓存数据(无法使用#result等对象)* unless:满足条件则不缓存*///根据id获取信息@Cacheable(value = "userCache",key = "#id",unless = "#result == null")@GetMapping("/{id}")public User getById(@PathVariable Long id){User user = userService.getById(id);return user;}//获取所有消息@Cacheable(value = "userCache",key = "#user.id + '_' + #user.name")@GetMapping("/list")public List<User> list(User user){LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(user.getId() != null,User::getId,user.getId());queryWrapper.eq(user.getName() != null,User::getName,user.getName());List<User> list = userService.list(queryWrapper);return list;}




在这里插入图片描述

http://www.15wanjia.com/news/2496.html

相关文章:

  • 网站制作代码我想接app纯注册推广单
  • 腾讯的网站建设用了多少钱seo简单速排名软件
  • 丹阳网站建设搭建一个网站需要多少钱?
  • 做房产网站多少钱抖音优化是什么意思
  • 临沂做网站建设的公司嘉兴百度快照优化排名
  • 创美艺佳网站是谁做的网店运营推广方案
  • 山西免费网站制作免费seo
  • 新闻资讯型网站开发搜索引擎是软件还是网站
  • 电影网站怎么做关键词搭建一个app平台需要多少钱
  • 黄页是什么东西厦门网站优化公司
  • 石家庄做公司网站外链代发平台
  • 观澜网站建设手机百度浏览器
  • 网站建设项目中标通知天天外链官网
  • 专业网站建设分为8步网站制作推广
  • seo案例网站建设哪家好关键词挖掘站长
  • 3合1网站建设电话红河网站建设
  • 手机常用网站哪个网站学seo是免费的
  • 1个服务器可以做多少个网站平台推广是什么
  • 太原网站排名外包鹤壁seo推广
  • 建设网站尺寸多少2345网址导航用户中心
  • 济南源码网站建设谷歌推广代理公司
  • 网站建设公司的公司排名seo的优化原理
  • 怎样创建网站收益浏览器如何推广自己网站
  • 促销活动推广方案郑州网站优化平台
  • 北京做网站的公司哪家好百度一键安装
  • 无锡网站设计开发单页网站seo优化
  • 怎么做打赏看视频的网站百度知道灰色词代发收录
  • 哈尔滨市建设安全网站河北关键词seo排名
  • 资质做网站需要用到什么百度百度一下一下
  • 领优惠券的小网站怎么做网站推广的内容