资讯专栏INFORMATION COLUMN

SpringCache-Redis 注解驱动 基本例子

Drinkey / 2769人阅读

摘要:一三个常用注解例子注解中存在有以下几个元素可看做命名空间,表示存储到哪个缓存之下配置多个缓存时,选择其一进行存储。例子用于标注需要删除缓存的方法,函数一定会运行,并且运行完成后删除下该的缓存。

一、三个常用注解

@Cacheable
例子:

public class QueryVo{

private Long id;

private String storeUser;

private String storeCar;
...
}

@Cacheable(value="myredis",key=""user_" + #vo.storeUser + "_storecar_" + #vo.storeCar")
public XXXX getXXXX(QueryVo vo) {
   ...
}

注解@Cacheable中存在有以下几个元素:
①value : 可看做命名空间,表示存储到哪个缓存之下(配置多个缓存时,选择其一进行存储)。

----------------------------------spring-redis.xml----------------------------------------
    
    
        
           
             
               
               
                    
                    
                  
             
           
        
    

②key : 表示命名空间下(该缓存下)缓存唯一key值
上述例子中其生成key值例如:user_tom_storecar_BMW750

@Cacheable 用于标注需要缓存方法,当执行该方法传入相同参数时,先从缓存中取值,未取到则运行函数,取到直接返回结果,不运行函数。

@CacheEvict
例子:

 @CacheEvict(value="myredis",key=""user_" + #vo.storeUser + "_storecar_" + #vo.storeCar")
 public XXXX deleteXXXX(QueryVo vo) {
  ...
 }

@CacheEvict 用于标注需要删除缓存的方法,函数一定会运行,并且运行完成后删除myredis下该key的缓存。
若该函数运行完需要删除多个缓存,写法:

 @Caching(  
        evict = {
                @CacheEvict(value="myredis",key=""user_"+#vo.storeUser+"_storecar_all""),
                @CacheEvict(value="myredis",key=""user_"+#vo.storeUser+"_storecar_" + #vo.storeCar")
        }
        
)  
 public XXXX deleteXXXX(QueryVo vo) {
  ...
 }

@CachePut
例子:

 @CachePut(value="myredis",key=""user_" + #vo.storeUser + "_storecar_" + #vo.storeCar")
 public XXXX modifyXXXX(QueryVo vo) {
  ...
 }

@CachePut 用于标注需要写入缓存的方法,函数运行前不查询缓存,函数必将执行且将结果以该key写入缓存,如果key已经存在就覆盖掉之前的缓存,可用于后台保存配置时及时刷新缓存。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69230.html

相关文章

  • Spring Cloud构建微服务架构:消息驱动的微服务(入门)【Dalston版】

    摘要:它通过使用来连接消息代理中间件以实现消息事件驱动的微服务应用。该示例主要目标是构建一个基于的微服务应用,这个微服务应用将通过使用消息中间件来接收消息并将消息打印到日志中。下面我们通过编写生产消息的单元测试用例来完善我们的入门内容。 之前在写Spring Boot基础教程的时候写过一篇《Spring Boot中使用RabbitMQ》。在该文中,我们通过简单的配置和注解就能实现向Rabbi...

    smallStone 评论0 收藏0
  • springCloud学习5(Spring-Cloud-Stream事件驱动

    摘要:它是事件驱动的,我们不断的发送消息接受消息处理消息。使用消息实现事件通信的概念被称为消息驱动架构,也被称为消息驱动架构。许可证服务收到该消息后清除对应的缓存。通过绑定器,使得开发人员不必依赖于特定平台的库和来发布和消费消息。 showImg(https://segmentfault.com/img/remote/1460000019542885); springcloud 总集:htt...

    Atom 评论0 收藏0
  • Dubbo 新编程模型之注解驱动

    摘要:在生态系统中,以和为代表的微服务框架,引入了全新的编程模型,包括注解驱动外部化配置以及自动装配等。新的编程模型无需配置简化部署提升开发效率。同时,新的编程模型也是即将发布的的基础设施。 原文地址 整体愿景 随着微服务架构的广泛地推广和实施。在 Java 生态系统中,以 Spring Boot 和 Spring Cloud 为代表的微服务框架,引入了全新的编程模型,包括注解驱动(Anno...

    chavesgu 评论0 收藏0
  • ssh(Spring+Struts2+hibernate)整合

    摘要:需求整合框架做一个保存用户的业务,业务比较简单,重在框架整合。 需求:整合ssh框架做一个保存用户的业务,业务比较简单,重在ssh框架整合。创建数据库和表 CREATE DATABASE ssh01; USE DATABASE; 表由Hibernate创建,可以看配置是否成功 一:导入jar包 Hibernate需要jar Hibernate基本jar mysql驱动 ...

    tulayang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<