Spring 中的 @Cacheable 缓存注解
时间: 2023-11-22 12:48:44 浏览: 174
@Cacheable是Spring框架中的一个缓存注解,它可以被用于方法级别或类级别。当使用@Cacheable注解时,Spring会在执行方法之前检查缓存中是否存在相同的方法调用,如果存在,则直接从缓存中获取结果而不是执行方法。如果缓存中不存在相同的方法调用,则执行方法并将结果存储在缓存中以供下次使用。
以下是一个使用@Cacheable注解的示例:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Override
@Cacheable(value = "users", key = "#id")
public User getUserById(Long id) {
System.out.println("Executing getUserById method for id: " + id);
return userRepository.findById(id).orElse(null);
}
}
```
在上面的示例中,@Cacheable注解被用于getUserById方法上。value属性指定了缓存的名称,key属性指定了缓存的键值。在这个例子中,缓存的名称为“users”,键值为方法的参数id。当getUserById方法被调用时,Spring会首先检查缓存中是否存在键值为id的缓存项,如果存在,则直接返回缓存中的结果,否则执行方法并将结果存储在缓存中以供下次使用。
阅读全文