public <T> void setCacheObject(final String key, final T value)
{
redisTemplate.opsForValue().set(key, value);
}
public <T> T getCacheObject(final String key)
{
ValueOperations<String, T> operation = redisTemplate.opsForValue();
return operation.get(key);
}
这个逻辑在调用 getCacheObject 时 返回对象会随机变成 com.alibaba.fastjson.JSONObject 或者 com.alibaba.fastjson2.JSONObject 导致外部调用时报类型强制转换异常
就是 ruoyi 脚手架 里面的 RedisService TokenService 里面调用 getLoginUser 就会报 java.lang.ClassCastException: com.alibaba.fastjson2.JSONObject cannot be cast to com.ruoyi.system.api.model.LoginUser
而且之前都正常 一段时间没运行 再跑就出现这个问题 定义是在 RedisConfig
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory);
FastJson2JsonRedisSerializer serializer = new FastJson2JsonRedisSerializer(Object.class);
全部都是 object 获取到就变 JSONObject 了 实在是没搞懂哪里有问题
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.