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

犀牛建筑网校seo排名诊断

犀牛建筑网校,seo排名诊断,毕业设计平台,人际网络营销三商法下面由Redis教程栏目给大家介绍关于spring redis注解实现缓存机制,希望对需要的朋友有所帮助!1、xml配置p:host-name"${redis_tax.host}" p:port"${redis_tax.port}" p:password"${redis_tax.pass}" p:pool-config-ref&qu…

下面由Redis教程栏目给大家介绍关于spring redis注解实现缓存机制,希望对需要的朋友有所帮助!

1、xml配置

p:host-name="${redis_tax.host}" p:port="${redis_tax.port}" p:password="${redis_tax.pass}" p:pool-config-ref="poolConfigTax"

p:database="0"/>

2、缓存注解@Cacheable、@CacheEvict、@CachePut详解

一、@Cacheable用法详解

1、用在哪里?用在方法或者类上。

2、这两种用法有什么区别?

用在方法上表示:该方法的返回值将被缓存起来

用在类上表示:表示该类的所有方法都支持该注解

3、使用后的结果是什么?下次使用相同方法和相同参数调用这个方法的时候将直接从缓存取值,而不需要再次执行该方法。

4、返回值在缓存中怎么存储的?以键值对的方式存储在缓存中,value就是返回值,key由两种策略生成:默认策略和自定义策略

5、默认策略和默认策略怎么用?

默认策略:在value值后双“::”拼接,形参列表,当形参是对象时,使用json格式:@CacheConfig(cacheNames="enterprise")//

public interface EnterpriseRepo extends JpaRepository,JpaSpecificationExecutor{

@Cacheable(value="cash1")

Enterprise findByid(Integer id);

@CachePut(value="cash1")

Enterprise save(Enterprise enterprise);

}

自定义策略:key属性是用来指定Spring缓存方法的返回结果时对应的key的。该属性支持SpringEL表达式。当我们没有指定该属性时,Spring将使用默认策略生成key。

自定义策略是指我们可以通过Spring的EL表达式来指定我们的key。这里的EL表达式可以使用方法参数及它们对应的属性。使用方法参数时我们可以直接使用“#参数名”或者“#p参数index”。下面是几个使用参数作为key的示例。@Cacheable(value="users", key="#id")

public User find(Integer id) {

return null;

}

@Cacheable(value="users", key="#p0")

public User find(Integer id) {

return null;

}

@Cacheable(value="users", key="#user.id")

public User find(User user) {

return null;

}

@Cacheable(value="users", key="#p0.id")

public User find(User user) {

return null;

}

除了上述使用方法参数作为key之外,Spring还为我们提供了一个root对象可以用来生成key。通过该root对象我们可以获取到以下信息。

bf3f5ac7d2c006bdf34a45653f16a626.png

当我们要使用root对象的属性作为key时我们也可以将“#root”省略,因为Spring默认使用的就是root对象的属性。如:@Cacheable(value={"users", "xxx"}, key="caches[1].name")

public User find(User user) {

return null;

}

6、condition属性指定发生的条件

有的时候我们可能并不希望缓存一个方法所有的返回结果。通过condition属性可以实现这一功能。condition属性默认为空,表示将缓存所有的调用情形。其值是通过SpringEL表达式来指定的,当为true时表示进行缓存处理;当为false时表示不进行缓存处理,即每次调用该方法时该方法都会执行一次。如下示例表示只有当user的id为偶数时才会进行缓存。@Cacheable(value={"users"}, key="#user.id", condition="#user.id%2==0")

public User find(User user) {

System.out.println("find user by user " + user);

return user;

}

二、@CachePut

在支持Spring Cache的环境下,对于使用@Cacheable标注的方法,Spring在每次执行前都会检查Cache中是否存在相同key的缓存元素,如果存在就不再执行该方法,而是直接从缓存中获取结果进行返回,否则才会执行并将返回结果存入指定的缓存中。@CachePut也可以声明一个方法支持缓存功能。与@Cacheable不同的是使用@CachePut标注的方法在执行前不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。

一般使用在保存,更新方法中。

@CachePut也可以标注在类上和方法上。使用@CachePut时我们可以指定的属性跟@Cacheable是一样的。

@CachePut(“users”)//每次都会执行方法,并将结果存入指定的缓存中public User find(Integer id) {

return null;

}

三、@CacheEvict

@CacheEvict是用来标注在需要清除缓存元素的方法或类上的。当标记在一个类上时表示其中所有的方法的执行都会触发缓存的清除操作。@CacheEvict可以指定的属性有value、key、condition、allEntries和beforeInvocation。其中value、key和condition的语义与@Cacheable对应的属性类似。即value表示清除操作是发生在哪些Cache上的(对应Cache的名称);key表示需要清除的是哪个key,如未指定则会使用默认策略生成的key;condition表示清除操作发生的条件。下面我们来介绍一下新出现的两个属性allEntries和beforeInvocation。

1、 allEntries属性

allEntries是boolean类型,表示是否需要清除缓存中的所有元素。默认为false,表示不需要。当指定了allEntries为true时,Spring Cache将忽略指定的key。有的时候我们需要Cache一下清除所有的元素,这比一个一个清除元素更有效率。@CacheEvict(value="users", allEntries=true)

public void delete(Integer id) {

System.out.println("delete user by id: " + id);

}

2、beforeInvocation属性

清除操作默认是在对应方法成功执行之后触发的,即方法如果因为抛出异常而未能成功返回时也不会触发清除操作。使用beforeInvocation可以改变触发清除操作的时间,当我们指定该属性值为true时,Spring会在调用该方法之前清除缓存中的指定元素。@CacheEvict(value="users", beforeInvocation=true)

public void delete(Integer id) {

System.out.println("delete user by id: " + id);

}

http://www.lbrq.cn/news/2428939.html

相关文章:

  • 上海网络平台网站建设网络服务提供者知道或者应当知道
  • 网站建设的主要内容包括网络营销期末考试试题及答案
  • 厦门建设局网站中标结果查询昆明seo建站
  • 新乡电子商务网站建设电商网站链接买卖
  • 寿光网站建设优化营销网站建设选择
  • 家庭网络搭建网站怎么推广产品
  • wordpress转zblog搜索引擎优化
  • 网站运营的成本杭州网站排名seo
  • 自己可以给公司做网站吗长沙网站se0推广优化公司
  • 怎么看网站建设百度网页版怎么切换
  • 网站界面设计需要首先做市场研究对吗百度认证考试
  • 嵊州市建设局网站小红书关键词优化
  • 备案做电影网站吗北京网站推广排名外包
  • 无锡网站优化建站青岛网站推广系统
  • 视频网站免费送会员怎么做百度seo最新算法
  • wordpress 自己做主页搜索引擎优化是什么意思
  • 中职教材 网站建设桔子seo
  • 珠海科技网站建设网站seo诊断
  • 深圳做网站比较好的公司竞价
  • 电商拿货平台seo关键词有哪些类型
  • 网站建设流程图2024年重大政治时事汇总
  • 天津做网站的费用网络推广平台大全
  • 乐山网站制作设计公司企业营销策划书范文
  • 外贸网站怎么做优化大师
  • 网络 网站深圳网络营销策划公司
  • 源码出售网站怎么做网站平台做推广
  • 搜点济南网站建设怎么做网络广告推广
  • 用jsp源码做网站网推拉新app推广接单平台
  • 十大免费行情软件网站下载nba最新消息球员交易
  • 日照网站建设价格如何制作简易网站
  • allegro 16.6配置CIS库报错 ORCIS-6129 ORCIS-6469
  • Kafka 如何优雅实现 Varint 和 ZigZag 编码
  • selenium爬取图书信息
  • Git核心功能简要学习
  • (9)机器学习小白入门 YOLOv:YOLOv8-cls 技术解析与代码实现
  • 基于python django的BOSS直聘网站计算机岗位数据分析与可视化系统,包括薪酬预测及岗位推荐,推荐算法为融合算法