苍穹外卖Day10

发布于:2025-08-07 ⋅ 阅读:(13) ⋅ 点赞:(0)


前言

``

一、清晨遇见的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,只需:

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

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

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

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

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


总结

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


网站公告

今日签到

点亮在社区的每一天
去签到