当前位置: 首页 > 知识库问答 >
问题:

java - Spring Boot 3 集成 Redisson 时使用 @Cacheable 获取不到 KEY 的原因是什么?

丁鹏鹍
2024-06-03

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;    }}

看了半天没看出来什么结果,想知道一般会有什么问题导致,有大佬帮忙看看吗

共有1个答案

缑修齐
2024-06-03

包路径要扫描到

 类似资料:
  • 问题内容: 什么是决定不具有的接口完全通用的get方法背后的原因。 为了澄清这个问题,方法的签名是 代替 我想知道为什么(与相同)。 问题答案: 正如其他人所提到的,之类的原因不是通用的,因为你要检索的条目的键不必与你传递给的对象的类型相同;方法的规范仅要求它们相等。这从方法如何将对象作为参数(而不仅仅是与对象相同的类型)中得出。 尽管通常已经定义了许多类,以便其对象只能等于其自己的类的对象,这确

  • 问题内容: 我见过很多人声称您应该在选择查询中专门为想要的每一列命名。 假设我仍然要使用所有列,为什么我不使用? 即使考虑问题* SQL查询-从视图选择或从视图*选择col1,col2,’colN,我也不认为这是完全相同的副本,因为我正从略有不同的观点着手解决这个问题。 我们的原则之一是在优化之前就不进行优化。考虑到这一点,在被证明是资源问题或架构几乎是固定的之前,似乎应该使用 首选的 方法。众所

  • 在哪些情况下,应该使用? 是否只是为了合法性问题? 如果是,那么问题是什么? 因为我仍然使用开发我的所有项目

  • 我看到的关于获取访问令牌以访问Azure密钥库的所有示例都涉及到使用ClientId和ClientSecret为众所周知的https://Vault.Azure.NET资源请求一个令牌。 这工作很好...但我希望能够使用集成安全获得一个访问令牌,以访问密钥库。 例如,我有 如何更新RequiredResourceAccessList? 更新:下面是如何配置应用程序的

  • 问题内容: 我正在调查以下内容 当启动部署了servlet的jboss服务器时,就会发生这种情况。它是用jdk-1.5.0_11编译的,我尝试用jdk-1.5.0_15重新编译,但没有成功。编译运行正常,但是在部署时会发生。 当我更改方法名称并收到以下错误时: 你可以看到显示了更多的方法签名。 实际的方法签名是 我已经尝试过使用它进行查看,并且给出了应有的方法签名。 当我的其他同事签出代码,对其进

  • 问题内容: 当我尝试运行程序时,出现以下错误 请帮忙 问题答案: 从Javadoc: 如果Java虚拟机找不到声明为native的方法的适当本机语言定义,则抛出该异常。 这是与JNI相关的错误。loadJacobLibrary试图加载名为jacob-1.14.3-x86的本机库,但在java.library.path定义的路径上找不到该库。启动JVM时,应将此路径定义为系统属性。例如 在Windo