cacheable注解详解
时间: 2023-09-18 11:16:26 浏览: 86
注解的详解
`@Cacheable` 是 Spring 框架中的一个注解,用于声明方法的返回值可以被缓存,以便后续相同的方法调用可以直接从缓存中获取结果,而不必执行方法本身。在使用该注解时,需要指定缓存的名称和缓存的 key。
例如,以下代码使用 `@Cacheable` 注解缓存了方法 `getUserById` 的返回值:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
@Cacheable(value = "userCache", key = "#id")
public User getUserById(int id) {
return userDao.getUserById(id);
}
}
```
在上述代码中,`@Cacheable` 注解的 `value` 属性指定了缓存的名称为 `userCache`,`key` 属性指定了缓存的键为方法的参数 `id`。如果后续有其他调用 `getUserById` 方法的地方传入相同的 `id` 参数,就可以直接从缓存中获取方法的返回值,而不必再次执行方法本身。
需要注意的是,使用 `@Cacheable` 注解时需要开启 Spring 的缓存功能,可以通过在配置类上添加 `@EnableCaching` 注解来启用缓存功能。同时也需要配置一个缓存管理器,可以使用 Spring 提供的缓存管理器,也可以自己实现一个缓存管理器。
阅读全文