苍穹外卖Day10


文章目录


前言

``

一、清晨遇见的bug

1.日志中出现

ERR Client sent AUTH, but no password is set

RedisConnectionFailureException: Unable to connect to Redis

解决办法

1.日志说明未连接上redis,先看redis是否启动

2.使用可视化软件(another redis desktop manage)看能否连接上本地redis

3.看配置文件中的连接是否有问题(在这里找到了问题)

错误信息 ERR Client sent AUTH, but no password is set 直接说明:

应用配置中指定了 Redis 密码(如 spring.redis.password=xxx);

但实际运行的 Redis 服务器未设置密码(默认情况下 Redis 没有密码);

两者冲突,导致 Redis 拒绝了带认证信息的连接请求。

2.小程序登录失败(日志显示 "异常信息:登录失败")

小程序登陆失败,spring boot可以运作,但是小程序不能登陆。通常思考微信登陆流程有问题。

思考微信登陆流程:小程序端调用 wx.login() 获取临时登录凭证 code(日志中 0e18hq000bbYIU1iIr300ukzEj38hq0o 可能就是这个 code);

后端接收 code,调用微信官方接口 https://api.weixin.qq.com/sns/jscode2session 换取用户唯一标识 openid 和会话密钥 session_key;

后端根据 openid 查询数据库(是否已存在该用户),不存在则创建新用户;

生成登录令牌(如 JWT)返回给小程序,完成登录。

解决办法

通过日志得知已经获取到登录凭证,那就是后端调用接口时发现后端发送的openid与session_key与当前小程序登录的openid不一致。导致登录失败

3.接口文档调试时使用账号密码登录失败

ERROR 27556 --- nio-8080-exec-3 com.sky.handler.GlobalExceptionHandler : 异常信息:密码错误

思考流程:我使用命令查询了mysql里面的表,看管理员账号密码。但还是显示密码错误。我输入不存在的账号,显示账号不存在。3.我在idea中database新增员工,通过bash命令查询同步了。4.使用新增的账号和密码也显示密码错误而不是账号不存在。

说明1.数据库与idea这个项目连接上了。2.存在这个账号只是单单密码错误。

于是我去根据提示去查看我的数据库密码输出是明文还是加密。显示明文,而后端显示使用DK5加密。

二、RedisTemplate对象

1. 为什么需要 RedisTemplate?

Redis 本身是基于命令行的(如 set key value、hgetall hashKey),直接在 Java 中调用需要处理:

与 Redis 服务器的连接(建立、断开、池化);

数据序列化(Java 对象 ↔ Redis 存储的字节流);

各种数据结构(String、Hash、List 等)的命令封装。

RedisTemplate 把这些底层工作全部做好了,比如你想存一个用户对象到 Redis,只需:

java 复制代码
// 无需关心连接和序列化,直接调用API
redisTemplate.opsForValue().set("user:100", user); // 存对象
User user = (User) redisTemplate.opsForValue().get("user:100"); // 取对象

2. 依赖注入(@Autowired)的价值

如果不通过 Spring 注入,你需要手动做这些:

java 复制代码
// 手动创建的话,代码繁琐且难以维护
RedisTemplate redisTemplate = new RedisTemplate();
redisTemplate.setConnectionFactory(redisConnectionFactory); // 手动设置连接工厂
redisTemplate.setKeySerializer(new StringRedisSerializer()); // 手动配置序列化器
redisTemplate.afterPropertiesSet(); // 手动初始化

而用 @Autowired 后,Spring 会自动把这些配置好的 RedisTemplate 实例 "送" 到你的类中,你直接用就行,不用写一行初始化代码。


总结

如果我的内容对你有帮助,请点赞👍、关注❤、收藏⭐️。创作不易,大家的支持就是我坚持下去的动力!

相关推荐
腻害兔7 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社8 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
萧瑟余晖9 小时前
JDK 26 新特性详解
java·开发语言
马优晨10 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
维天说12 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
Zane199413 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端
噢,我明白了14 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
吠品14 小时前
Zabbix Web界面误报Server未运行的排查与解决
java·服务器·数据库
啊湘14 小时前
天气查询API接口 按月Token鉴权 实时天气 物联网可用 文档齐全
java·后端·struts
Java内核笔记14 小时前
告别十亿美元的错误 : Spring Boot 4 空安全 (JSpecify) 实战
java·spring boot·后端