博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring-Boot——Cache
阅读量:5126 次
发布时间:2019-06-13

本文共 2026 字,大约阅读时间需要 6 分钟。

简单使用

1. maven 依赖

2. 开启缓存配置

在启动类上开启缓存 @EnableCaching

3. 使用缓存

@Cacheable 是将方法的返回值保存到缓存中

@CachePut 是根据key更新缓存中的数据
@CacheEvict 是根据key删除缓存数据

@Cacheable(cacheNames = {"emp"}, key = "#id")public Employee getEmp(Integer id) {    Employee employeeId = employeeMapper.getEmployeeId(id);    return employeeId;}@CachePut(cacheNames = {"emp"}, key = "#result.id")public Employee updateEmp(Employee employee) {    employeeMapper.updateEmp(employee);    return employee;}@CacheEvict(cacheNames = {"emp"}, key = "#id")public boolean delete(Integer id) {    employeeMapper.delete(id);    return true;}

自动配置原理

1. 默认的缓存配置器

* 直接搜索类 ```CacheAutoConfiguration``` 找到 ```CacheConfigurationImportSelector.selectImports```方法,该方法会返回所有的自动配置类:```org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration````org.springframework.boot.autoconfigure.cache.JCacheCacheConfiguration``org.springframework.boot.autoconfigure.cache.EhCacheCacheConfiguration``org.springframework.boot.autoconfigure.cache.HazelcastCacheConfiguration``org.springframework.boot.autoconfigure.cache.InfinispanCacheConfiguration``org.springframework.boot.autoconfigure.cache.CouchbaseCacheConfiguration``org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration``org.springframework.boot.autoconfigure.cache.CaffeineCacheConfiguration``org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration``org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration`* 在 `application.yml` 中 设置 `debug: true`,在控制台可以看到默认使用的自动配置类```SimpleCacheConfiguration matched:  - Cache org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration automatic cache type (CacheCondition)  - @ConditionalOnMissingBean (types: org.springframework.cache.CacheManager; SearchStrategy: all) did not find any beans (OnBeanCondition)```

2. @Cacheable 不能的key不能使用result,因为@Cacheable在方法执行前调用的。

3. @CachePut 可以使用result中的数据,因为@CachePut在方法执行后调用。

  1. @CacheEvict 默认在方法执行之后执行(如果方法执行出错,将不会执行),可以通过 beforeInvocation=true 设置为在方法之前执行。

转载于:https://www.cnblogs.com/Godfunc/p/9316563.html

你可能感兴趣的文章
以太网交换机
查看>>
DOM
查看>>
ROS学习笔记四:用C++编写ROS发布与订阅
查看>>
点击回车事件(登录)
查看>>
Windows7睡眠后自动唤醒
查看>>
Jq_网站顶部定时折叠广告
查看>>
GCD与LCM【数论】
查看>>
构建之法现代软件概述
查看>>
实现进程守护 脚本命令
查看>>
snappy
查看>>
CLR via C# 阅读 笔记
查看>>
互斥锁
查看>>
arp欺骗技术
查看>>
admin——django自带数据库管理工具
查看>>
怎么配置SQLServer2005以允许远程连接
查看>>
NSString 中包含中文字符时转换为NSURL
查看>>
莫名其秒的Cannot load JDBC driver class 'com.mysql.jdbc.Driv
查看>>
Java面试题
查看>>
SecureCRT SSH 语法高亮
查看>>
图像质量评价之数据库
查看>>