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

免费建站系统软件怎样留别人电话在广告上

免费建站系统软件,怎样留别人电话在广告上,编程软件排行榜前十名,wordpress国外空间什么是Spring Cache? Spring Cache是Spring框架的一个模块,它提供了对应用程序方法级别的缓存支持。通过使用Spring Cache,您可以在方法的结果被计算后,将其缓存起来,从而避免相同输入导致的重复计算。 Spring Cache…

什么是Spring Cache?

Spring Cache是Spring框架的一个模块,它提供了对应用程序方法级别的缓存支持。通过使用Spring Cache,您可以在方法的结果被计算后,将其缓存起来,从而避免相同输入导致的重复计算。

Spring Cache的工作原理

Spring Cache基于注解的方式工作。当您在方法上添加了Spring Cache提供的缓存注解后,Spring会在执行方法前先检查缓存中是否已经存在了方法的返回值。如果缓存中已经有了结果,那么Spring将直接从缓存中获取返回值,并且不会再执行实际的方法体。如果缓存中没有结果,Spring会执行方法的实际逻辑,并将返回值存储到缓存中,以备将来使用。

Spring Cache支持各种缓存提供商,例如Ehcache、Caffeine、Redis等,您可以根据需求来选择合适的缓存实现。

Spring Cache的常用注解

  1. @EnableCaching : 开启缓存注解功能,通常加在启动类上

  2. @CachePut: 该注解也标记在方法上,用于指示方法的结果应该被缓存,但是它在每次调用后都会执行方法体,并将返回值更新到缓存中。

  3. @CacheEvict: 该注解标记在方法上,用于从缓存中移除一个或多个条目。可以指定多个缓存名称或者缓存键,当方法执行时,相关的缓存条目将被从缓存中清除。

  4. @Cacheable: 在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将方法返回值放到缓存中

Spring Cache的使用场景

Spring Cache非常适合以下情况:

  1. 频繁访问数据库或其他资源,通过缓存避免重复查询;
  2. 计算成本较高的方法,通过缓存避免重复计算;
  3. 实时性要求不高的数据,例如配置信息等;
  4. 一些通用且不经常改变的数据,例如地区信息、常量等。

起步依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache<artifactId><version>2.7.3</version> 
</dependency>

入门案例

数据库准备:

创建名为spring_cache_demo数据库,将springcachedemo.sql(如下:👇)脚本直接导入数据库中。

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (`id` bigint NOT NULL AUTO_INCREMENT,`name` varchar(45) DEFAULT NULL,`age` int DEFAULT NULL,PRIMARY KEY (`id`)
);

引导类上加@EnableCaching:

package com.itheima;@Slf4j
@SpringBootApplication
@EnableCaching//开启缓存注解功能
public class CacheDemoApplication {public static void main(String[] args) {SpringApplication.run(CacheDemoApplication.class,args);log.info("项目启动成功...");}
}

@CachePut注解

@CachePut 说明:

作用: 将方法返回值,放入缓存
value: 缓存的名称, 每个缓存名称下面可以有很多key
​key: 缓存的key ----------> 支持Spring的表达式语言SPEL语法

在save方法上加注解@CachePut
当前UserController的save方法是用来保存用户信息的,我们希望在该用户信息保存到数据库的同时,也往缓存中缓存一份数据,我们可以在save方法上加上注解 @CachePut,用法如下:

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

说明:

#user.id 常用: #user指的是方法形参的名称, id指的是user的id属性 , 也就是使用user的id属性作为key ;
#result.id : #result代表方法返回值,该表达式 代表以返回对象的id属性作为key ;
#p0.id:#p0指的是方法中的第一个参数,id指的是第一个参数的id属性,也就是使用第一个参数的id属性作为key ;
#a0.id:#a0指的是方法中的第一个参数,id指的是第一个参数的id属性,也就是使用第一个参数的id属性作为key ;
#root.args[0].id:#root.args[0]指的是方法中的第一个参数,id指的是第一个参数的id属性,也就是使用第一个参数的id属性作为key ;

@Cacheable

@Cacheable 说明:

作用: 在方法执行前,spring 先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中
cacheNames: 缓存的名称,每个缓存名称下面可以有多个key
key: 缓存的key ----------> 支持Spring的表达式语言SPEL语法

在getById上加注解@Cacheable

/**
* Cacheable:在方法执行前spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,	  *调用方法并将方法返回值放到缓存中
* cacheNames:缓存的名称,每个缓存名称下面可以有多个key
* key:缓存的key
*/
@GetMapping
@Cacheable(cacheNames = "userCache",key="#id")
public User getById(Long id){User user = userMapper.getById(id);return user;
}

@CacheEvict

@CacheEvict 说明:

作用: 清理指定缓存
​ cacheNames: 缓存的名称,每个缓存名称下面可以有多个key
​ key: 缓存的key ----------> 支持Spring的表达式语言SPEL语法

在 delete 方法上加注解@CacheEvict

@DeleteMapping
@CacheEvict(cacheNames = "userCache",key = "#id")//删除某个key对应的缓存数据
public void deleteById(Long id){userMapper.deleteById(id);
}@DeleteMapping("/delAll")
@CacheEvict(cacheNames = "userCache",allEntries = true)//删除userCache下所有的缓存数据
public void deleteAll(){userMapper.deleteAll();
}
http://www.hkea.cn/news/680464/

相关文章:

  • ppt模板免费下载网站不用登录seo测试工具
  • 四川建设人才网官网查询阜新网站seo
  • 太原网站开发定制百度网盘官网下载
  • 业主装修日记那个网站做的好片多多可以免费看电视剧吗
  • 租车网站建设站长之家源码
  • 昌吉州回族自治州建设局网站地产渠道12种拓客方式
  • 北京市网站公司网络项目免费的资源网
  • 电子商务网站规划、电子商务网站建设站长工具 忘忧草
  • 凡科建网关键词优化公司哪家好
  • seo排名推广工具seo公司多少钱
  • 做视频网站赚钱怎么在百度上推广自己的公司信息
  • 网站建设凡科厦门网站建设平台
  • 互联网行业pest分析福州百度快速优化排名
  • 做网站的接私活犯法吗如何对网站进行推广
  • 身高差效果图网站优化师和运营区别
  • 谷歌wordpress建站搜索引擎算法
  • .net 购物网站开发源代码发布信息的免费平台
  • 自己做一网站大学生网络营销策划书
  • 关于网站建设的文章百度域名收录提交入口
  • 国人在线做网站推广图片大全
  • 郑州网站建设七彩科技四年级说新闻2023
  • 在什么网站上做自媒体seo整站怎么优化
  • 网站开发要注意安全性公司优化是什么意思
  • 河北邢台做移动网站开通网站需要多少钱
  • 天河网站建设多少钱淘宝关键词优化
  • 中型网站 收益关键词排名查询官网
  • 网站的弹窗是怎么做的谈谈对seo的理解
  • 广州网站制作费用宁波seo外包哪个品牌好
  • 河南高端网站建设广州网站优化页面
  • 企业可以备案几个网站南昌seo实用技巧