@Cacheable 怎么设置过期时间
时间: 2023-07-22 13:24:45 浏览: 186
spring整合redis缓存并以注解(@Cacheable、@CachePut、@CacheEvict)形式使用
@Cacheable 注解是 Spring 提供的缓存注解,它可以将方法的返回值缓存起来,当再次调用该方法时,如果缓存中已经有了该值,则直接从缓存中获取,不再执行该方法。如果要设置过期时间,可以使用 @Cacheable 注解的 `expire` 属性,该属性用于设置缓存的过期时间,单位为秒。
例如,以下代码演示了如何使用 @Cacheable 注解设置缓存过期时间为 60 秒:
```java
@Cacheable(value="myCache", key="#id", expire=60)
public User getUserById(int id) {
// 查询数据库,获取用户信息
User user = userDao.getUserById(id);
return user;
}
```
在上面的代码中,@Cacheable 注解中的 `expire` 属性设置为 60,表示缓存过期时间为 60 秒。因此,在第一次调用 `getUserById` 方法时,如果该方法返回了一个 User 对象,那么该对象会被缓存起来,并在 60 秒内有效。在 60 秒之后,再次调用该方法时,会重新执行该方法,并将返回值缓存起来。
需要注意的是,如果使用 @Cacheable 注解设置了过期时间,那么该注解需要与缓存管理器(如 EhCache、Redis 等)一起使用才能生效。否则,即使设置了过期时间,缓存也不会失效。
阅读全文