1.前端查询不到redis中的数据



解决方案:
这个bug出现的原因1是数据没有存入redis,因为代码逻辑错误,解决这个问题之后,出现了将redis里面的数据解码异常导致无法显示数据的错误,报错为服务器异常,解决办法如下
2.重载类型匹配问题

问题根源:spring data redis版本2.3.X没有两个重载,所以会强转String类型
解决办法1:将spring data redis版本升级成2.6.X,但是spring data redis 版本和spring boot版本强绑定,比较麻烦

换版本之后出现这个报错:maven无法下载/spring boot无法解析spring boot maven 插件
Unresolved plugin: 'org.springframework.boot:spring-boot-maven-plugin:2.6.15'
由于版本问题需要修改的地方比较多,就放弃了这个选项
然后使用了原生 GEORADIUS 命令
发现还是没有显示
于是通过增加日志跟踪确定出现问题的代码位置以及数据形式的变化
最后发现是因为Redis 返回的是「ASCII 字节数组」,但后端当成「List 列表」解析 → 判定为空所以没有数据
核心:手动执行GEORADIUS命令返回的是结构化列表,但Java调用connection.execute直接调用的redis原生命令返回的是原始字节数组
最终解决办法还是改成使用redisTemplete的georadius方法
3.静态字段上用了 @Resource 注解
VoucherOrderServiceImpl 类中,给静态(static)字段加了 @Resource 注解(用于依赖注入),但 Spring 明确不支持「在静态字段上使用 @Resource/@Autowired 注解」,导致 Bean 创建失败,项目启动不了。为什么 Spring 不支持静态字段注入?
- 核心逻辑:
- Spring 管理的 Bean 是「实例对象」,依赖注入是给「每个实例对象」分配对应的依赖(比如每个
VoucherOrderServiceImpl实例都有自己的stringRedisTemplate); - 静态字段属于「类本身」,不属于任何实例,Spring 无法将「实例级别的依赖」注入到「类级别的静态字段」中。
- Spring 管理的 Bean 是「实例对象」,依赖注入是给「每个实例对象」分配对应的依赖(比如每个
- 设计原则:
静态字段是全局共享的,而 Spring 的依赖注入是为了实现「松耦合、可复用、可测试」,静态字段会破坏这些特性(比如单元测试时无法替换静态字段的依赖)。


4.MyBatis-Plus Service 层链式查询问题
bug:List<ShopType> shopTypes = shopTypeService.query().orderByAsc("sort").list();这个代码可以在service里面用,但是不能在test文件里面用,即使是导入了相同的包。
问题:query().orderByAsc("sort").list() 是 MyBatis-Plus Service 层链式查询,测试类中「缺少 Service 层依赖 + 链式查询的正确上下文」,而非单纯 import 包的问题
1. 链式查询query().orderByAsc("sort").list()的生效条件
IService/ServiceImpl的 Service 类 提供的便捷方法,核心依赖:- 类必须是「Service 实现类」(继承
ServiceImpl<Mapper, Entity>),或在 Service 类中调用; - 底层依赖
mybatis-plus-extension包(已导入)。
解决方案:
1.注入shopService
查看代码
@Autowired
private IShopService shopService;
// 2. 注入ShopTypeService
@Autowired
private IShopTypeService shopTypeService;
2.改用Mapper层写法
查看代码
@Autowired
private ShopTypeMapper shopTypeMapper;
// 用QueryWrapper+Mapper.selectList()(无Service也能生效)
QueryWrapper<ShopType> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByAsc("sort");
List<ShopType> shopTypes = shopTypeMapper.selectList(queryWrapper);
浙公网安备 33010602011771号