@Cacheable的key
时间: 2024-07-12 16:01:09 浏览: 146
java之SpringCache之@Cacheable注解的说明使用
`@Cacheable` 是 Spring Framework 中的一个注解,用于缓存方法的返回结果,提高性能。当在缓存中设置键(key)时,`@Cacheable` 将根据指定的键计算并存储数据。这个键通常是方法参数的组合,或者是开发者自定义的。
例如:
```java
@GetMapping("/users/{id}")
@Cacheable(value = "users", key = "#id") // 自动使用 id 作为缓存键
public User getUser(@PathVariable Long id) {
return userService.getUser(id);
}
```
在这个例子中,`#id` 表示使用 `id` 参数的值作为缓存的键。如果之前查询过相同 `id` 的用户,下次请求时可以直接从缓存中获取,而无需再次查询数据库。
如果你想更精细地控制键的生成,也可以提供一个方法引用或字符串表达式:
```java
@GetMapping("/users")
@Cacheable(value = "users", key = "customKeyGenerator(#username, #password)")
public User getUser(String username, String password) {
// ...
}
```
在这里,`customKeyGenerator` 是一个自定义的方法,负责计算并返回缓存键。
阅读全文