SpringCache介绍

SpringCache是Spring提供的缓存框架。提供了基于注解的缓存功能。

SpringCache提供了一层抽象,底层可以切换不同的缓存实现(只需要导入不同的Jar包即可),如EHCache,Caffeine,Redis。

 

2个重要依赖已经导入:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

 

注解使用:

1 在启动类上加@EnableCaching

2.1 @CachePut标签

 在controller层的UserController下的save方法上写入如下的代码:

@PostMapping
@CachePut(cacheNames="userCache",key="#user.id") //如果使用spring Cache缓存数据,key的生成:userCache::1。user是从参数取到的。
//@CachePut(cacheNames="userCache",key="#result.id") //result是从返回值return取到的
//@CachePut(cacheNames="userCache",key="#p0.id")
//@CachePut(cacheNames="userCache",key="#a0.id")
//@CachePut(cacheNames="userCache",key="#root.args[0].id")
public User save(@RequestBody User user){
    userMapper.insert(user);
    return user;
}

 当对数据进行数据入库时自动存入redis缓存

注意key="#result.id"中的result取的是返回值返回的那个结果。 key="#user.id"的user取的是传入的参数。p0,a0,root.args[0]表示取的都是第1个参数。

2.2 @Cacheable(cacheNames="userCache",key="#id")

在方法上加入@Cacheable:方法执行时,会先查询是否有缓存,如果有,直接调用缓存;如果没有,将sql查询出来的数据存入缓存

2.3@CacheEvict(cacheNames = "userCache",key="#id") //key的形式 userCache::10

 @CacheEvict(cacheNames="userCache",allEntries = true)

在方法上加入@CacheEvict:将一条或多条数据从缓存中删除

相关推荐

  1. SpringCache

    2024-07-16 22:10:04       33 阅读
  2. SpringCache入门

    2024-07-16 22:10:04       56 阅读
  3. SpringCache使用配置

    2024-07-16 22:10:04       70 阅读
  4. 使用SpringCache缓存数据

    2024-07-16 22:10:04       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 22:10:04       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 22:10:04       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 22:10:04       62 阅读
  4. Python语言-面向对象

    2024-07-16 22:10:04       72 阅读

热门阅读

  1. Spring源码注解篇三:深入理解@Component注解

    2024-07-16 22:10:04       25 阅读
  2. git开发流程

    2024-07-16 22:10:04       19 阅读
  3. 5. 基于Embedding实现超越elasticsearch高级搜索

    2024-07-16 22:10:04       25 阅读
  4. 业务需求方面

    2024-07-16 22:10:04       20 阅读
  5. ABC分析模型详解

    2024-07-16 22:10:04       19 阅读
  6. Ceph资源池pool管理

    2024-07-16 22:10:04       18 阅读
  7. 常用知识点问答

    2024-07-16 22:10:04       22 阅读
  8. MongoDB 面试题及答案整理,最新面试题

    2024-07-16 22:10:04       20 阅读
  9. 记录一次Android推流、录像踩坑过程

    2024-07-16 22:10:04       20 阅读
  10. LINUX:懒汉单例模式线程池

    2024-07-16 22:10:04       21 阅读
  11. flask-login会话保持实现

    2024-07-16 22:10:04       24 阅读
  12. C调用C++接口

    2024-07-16 22:10:04       23 阅读