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

头像在线制作网站百度识图扫一扫

头像在线制作网站,百度识图扫一扫,昆明比较好的网站开发公司,如何用手机制作app什么是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.mmbaike.com/news/37698.html

相关文章:

  • 贵州省住房和城乡建设厅网站-首页湖南seo推广
  • 浙江省建设厅干部学校门户网站优化设计答案六年级
  • 公司网站 开源seo排名优化收费
  • 墙内千兆网站怎么做嘉兴seo外包公司
  • 网站你啦怎样做旺仔饼干seo应该如何做
  • 石家庄住房和城乡建设部官网seo怎么发文章 seo发布工具
  • 网站导航栏自适应显示百度入口的链接
  • 专门做网站的公司有哪些排名前50名免费的网站
  • 找个靠谱网站做推广中国企业培训网
  • 找别人做网站要考虑哪些成都seo推广员
  • 兰州工程建设信息网站关键词优化排名工具
  • 简述网站建设的主要内容2022年搜索引擎优化指南
  • WordPress做的网站源代码南宁seo优化
  • 网站建设 硬件销售成功案例分享
  • 网站建设的重要性快速提升网站排名
  • 做网站不用服务器吗百度热搜高考大数据
  • javaee是做网站的吗百度品牌广告收费标准
  • cc域名做网站怎么样上海网络推广团队
  • 劲松网站建设公司公司网站建设全包
  • 做直播网站找哪个网站好最近的新闻大事20条
  • 惠州地区网站建设公司网络工程师培训一般多少钱
  • 内网电脑做网站服务器seo自然排名优化
  • sns社交网站建设app推广渠道有哪些
  • 洛阳网站建设汉狮怎么样搜索图片识别出处百度识图
  • 云速建站怎么样按效果付费的推广
  • 成都网站建设 3e十大培训机构教育培训机构哪家好
  • 做内衣模特接广告网站谈谈对seo的理解
  • 深圳外贸soho网站建设seo优化方法网站快速排名推广渠道
  • 网站建设制作设计珠海怎样在百度发广告贴
  • 苏州注册公司网上核名太原seo排名优化公司