@Cacheable的原理
时间: 2023-11-22 14:49:11 浏览: 99
Cache的工作原理
@Cacheable是Spring框架中的一个注解,用于实现缓存功能。其原理是在方法执行前,先检查缓存中是否存在该方法的返回值,如果存在,则直接返回缓存中的值,否则执行该方法并将返回值存入缓存中。具体实现过程如下:
1. Spring在启动时会扫描所有带有@Cacheable注解的方法,并为其生成代理对象。
2. 当调用带有@Cacheable注解的方法时,代理对象会先从缓存中查找是否存在该方法的返回值。
3. 如果缓存中存在,则直接返回缓存中的值。
4. 如果缓存中不存在,则执行该方法,并将返回值存入缓存中。
下面是一个使用@Cacheable注解的例子:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
@Cacheable(value = "userCache", key = "#id")
public User getUserById(Long id) {
return userDao.getUserById(id);
}
}
```
在上面的例子中,@Cacheable注解被用于getUserById方法上。其中,value属性指定了缓存的名称,key属性指定了缓存的键值,这里使用了SpEL表达式来获取方法参数id的值作为缓存的键值。
阅读全文