Springboot3集成Redisson,使用@Cacheable获取不到KEY.
继承AbstractValueAdaptingCache类重写lookup方法时,发现入参为null
@Cacheable(key = "'cache_uid_' + #uid", value = "user")
public User getUserInfo(String uid) {
User user = userMap.get(uid);
ThreadUtil.sleep(1000);
logger.info("获取用户信息:{}", user.toString());
return user;
}
@SpringBootTest(classes = CacheApplication.class)
public class CacheTest {
@Autowired
private UserService userService;
@Test
public void testCacheSizeAndWeightLimit() {
for (int i = 0; i < 10; i++) {
userService.getUserInfo("x001");
}
userService.evictUserSync("x001");
userService.getUserInfo("x001");
}
}
public class RedisCaffeineCache extends AbstractValueAdaptingCache {
@Override
protected Object lookup(Object key) {
System.out.println(key); //这里就成了cache_uid_null
var cacheKey = buildKey(key);
return null;
}
}
看了半天没看出来什么结果,想知道一般会有什么问题导致
代码:cache项目地址
分支:develop-x
包路径要扫描到