springboot cacheable 默认过期时间是多久
时间: 2023-11-28 13:51:20 浏览: 119
在 Spring Boot 中使用 @Cacheable 注解时,默认的过期时间是永久的,即缓存数据不会过期,除非手动清除缓存或应用程序重启。但是,可以通过使用 @CacheConfig 注解来配置缓存的默认过期时间,如下所示:
```java
@CacheConfig(cacheNames = "myCache", cacheManager = "myCacheManager")
public class MyService {
@Cacheable(key = "#id")
public MyData getData(String id) {
// ...
}
@Cacheable(key = "#id", cacheManager = "anotherCacheManager", cacheNames = "anotherCache")
public MyData getAnotherData(String id) {
// ...
}
}
```
在上面的示例中,@CacheConfig 注解用于指定缓存名称和缓存管理器。如果没有指定过期时间,则使用默认的永久过期时间。如果需要配置缓存过期时间,可以使用 @Cacheable 注解的属性来指定过期时间。如下所示:
```java
@Cacheable(key = "#id", cacheManager = "myCacheManager", cacheNames = "myCache",
unless = "#result == null",
expireAfterWrite = 5,
expireAfterAccess = 2)
public MyData getData(String id) {
// ...
}
```
在上面的示例中,@Cacheable 注解的 expireAfterWrite 属性指定了缓存数据写入后的过期时间(单位为秒),expireAfterAccess 属性指定了缓存数据访问后的过期时间(单位为秒)。如果指定了过期时间,则缓存数据会在过期时间到达后自动失效,需要重新加载数据。
阅读全文