苍穹外卖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 实例 "送" 到你的类中,你直接用就行,不用写一行初始化代码。


总结

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

相关推荐
码界奇点几秒前
基于Spring与Netty的分布式配置管理系统设计与实现
java·分布式·spring·毕业设计·源代码管理
计算机毕设指导61 分钟前
基于微信小程序的咖啡店点餐系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea
Geoking.1 分钟前
【设计模式】外观模式(Facade)详解
java·设计模式·外观模式
闻道且行之6 分钟前
NLP 部署实操:Langchain-Chatchat 配置文件深度修改与精细化调试
java·自然语言处理·langchain
h7ml7 分钟前
企业微信回调模式解析:从XML到POJO的自定义JAXB编解码器设计
xml·java·企业微信
草莓熊Lotso8 分钟前
Qt 信号与槽深度解析:从基础用法到高级实战(含 Lambda 表达式)
java·运维·开发语言·c++·人工智能·qt·数据挖掘
装不满的克莱因瓶1 小时前
【踩坑】IDEA提交Git .gitignore忽略文件不起作用
java·git·.gitignore·踩坑
专注于大数据技术栈1 小时前
java学习--Collection的迭代器
java·python·学习
毕设源码-郭学长8 小时前
【开题答辩全过程】以 基于SpringBoot技术的美妆销售系统为例,包含答辩的问题和答案
java·spring boot·后端
梨落秋霜8 小时前
Python入门篇【文件处理】
android·java·python