写在前面的话
在看网课过程中会有很多老师运行成功但我们失败并且老师还不没有讲到的情况,本文致力于解决这个问题,记录了本人在做这个项目的时候遇到的所有问题,希望可以帮助到大家。、
可以直接在根据目录或者导航栏找到自己的遇到问题的章节,看看你遇到的问题我有没有解决过,如果有,那么,可以试试我的方法。
一些建议
1 在遇到问题以后,可以打开弹幕,很多问题,弹幕里就有答案
2 遇到问题不要慌,接着看,说不定,接下来就讲解你遇到的问题了。(有些是专门挖的坑,讲解一下)
3 在这个前端界面点击的时候,总是点不进去,那么你可以试试点那个圆圈上面一些的地方,他那个让点的地方不是下面那个圆圈,如果你一直点那个圈圈,你永远都点不上。
后面的可以直接按照章节来找自己对应的问题。
然后,希望您可以给我点个赞。自己写的东西可以帮助到别人我会很开心,谢谢。
目录
p7 06初识redis无法在虚拟机查到图形化界面存进去的键
P17 基础篇16jedis redis依赖无法正常引入,报错edis.clients:jedis:pom:6.
P21基础篇20Redis的java客户端 报错ava: 无法将类 org.example.redis.pojo.User中的构造器 User应用到给定类型;
方法二(如果不想费事,只想快速解决这个问题)(还是建议方法一)
实战篇02短信登录 利用资料中的mysql语句创建数据表时报错
p29实战篇-08.短信登录 LoginIntercepter类里强转(网课User但系统提示UserDTO) 测试的时候登录校验功能还是没有实现
p34实战篇-11.短信登录 在最后测试的时候,更新了RefreshTokenIntercepter后,再次运行idea刷新后,前端界面没有退出无法登录
P37商户点评缓存作业,用了string和list两种方法,可以直接复制粘贴
P50优惠券秒杀,老师postman里面的测试数据,可以直接复制粘贴(自己打容易出错)
P52优惠券秒杀,一个新的软件JMeter,不知道在哪里整的
P55优惠券秒杀 快捷键问题 Ctrl+D显示不出来老师给的界面
p55优惠券秒杀 左下角和老师的不一样 idea左下角没有Spring Boot
P55HmDianPingApplication2显示不出来
基础篇06初识redis 测试连接redis失败
问题描述
在这里测试连接失败
解决
1 地址密码
那个地址是你在你的虚拟机里面输入
ip addr
后输出的结果,我的是这个样子的,可以参考我的位置,找到你自己的。
还有那个密码是123321
2. 虚拟机的防火墙没关
所有信息都正确了,还是连不上
要将vmware里的虚拟机的防火墙关掉。注意是关掉虚拟机里的防火墙不是你自己电脑的防火墙。
查看防火墙状态
systemctl status firewalld
关闭防火墙
除去本次 之后的开机 防火墙默认关闭
systemctl disable firewalld
关闭本次(当前)防火墙
systemctl stop firewalld
依次执行上面三条指令,然后你的虚拟机的防火墙就被关掉了
然后,一下就成功了。
p7 06初识redis无法在虚拟机查到图形化界面存进去的键
问题描述
在RESP中输入了一些键(name,age等这些)
但是在图形化界面里面输入的,在非图形化界面就找不到,在非图形化界面里输入的,在图形化界面里就可以查到。
原因分析及解决
经过多次实验,发现是因为在添加键名的时候,多加了一个空格。加了空格在非图形化界面里就查不到了。就算你在非图形化界面里,将那个空格加上,也查不出来。
P17 基础篇16jedis redis依赖无法正常引入,报错edis.clients:jedis:pom:6.
问题描述
在idea中引入redis依赖的时候一直无法正确引入,
报错:
redis.clients:jedis:pom:6.0.0 failed to transfer from http://maven.aliyun.com/nexus/content/groups/public/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of alimaven has elapsed or updates are forced. Original error: Could not transfer artifact redis.clients:jedis:pom:6.0.0 from/to alimaven (http://maven.aliyun.com/nexus/content/groups/public/): Connect to maven.aliyun.com:80 [maven.aliyun.com/1.82.232.69] failed: Connect timed out Try to run Maven import with -U flag (force update snapshots)
原因分析
开始我觉得可能是版本不对,然后又尝试了别的版本。但还是不行
还有可能是因为之前下载的时候,可能由于一些原因比如网络问题等,没有下载完全,然后留下了一个**.lastUpdated的文件,这导致你后面怎么点那个更新的按键都没用。
解决
我尝试了很多方法,试着下过很多版本,但都是只能下载一点点,下不全。
最后我觉得可行的一个方法是:在你的本地仓库mvn_repo中找到redis目录,直接给他全部删掉
然后点击maven的那个更新的按钮,要是没反应,在idea的终端输入下面这行代码。我输入这行代码,就加载进去了。
mvn clean install -U
基础篇16jedis redis依赖引入后仍然还是报错
问题描述
依赖已经导入进去了,在仓库里有***.jar和***.pom这两个文件,但是点开右面的maven还是有很多爆红。点击maven里的更新还是不行。
解决
点到配置文件pom.xml
在lombok这个依赖的代码下面,添加上版本号,刷新一下
右键单击pom.xml文件里的界面,再按下面的图片点击。爆红就消失了。
右键单击pom.xml文件里的界面,再按下面的图片点击。爆红就消失了。
P21基础篇20Redis的java客户端 报错ava: 无法将类 org.example.redis.pojo.User中的构造器 User应用到给定类型;
问题描述
报错:
无法将类 org.example.redis.pojo.User中的构造器 User应用到给定类型;
需要: 没有参数
找到: java.lang.String,int
原因: 实际参数列表和形式参数列表长度不同
原因分析
这个情况我之前也遇到过,是lombok的问题
有两种解决方法,一种在javaBean类中永远不适用@Data、@AllArgsConstructor、@NoArgsConstructor直接自己手动生成。另一种是解决lombok的问题
解决
方法一(强烈推荐)(虽然当你问AI它会给你推荐另一种)
前置检查:
1:在 IntelliJ 中安装 Lombok 插件(File → Settings → Plugins → 搜索 Lombok)
2:在 IDEA 中启用注解处理:
File → Settings → Build → Compiler → Annotation Processors → 勾选 Enable annotation processing
。
关键步骤
在lombok这个依赖的代码下面,添加上版本号,刷新一下
右键单击pom.xml文件里的界面,再按下面的图片点击。爆红就消失了。
将target目录删掉(每次程序运行的时候,如果没有就会再生成)(如果不删掉的话,后面的步骤无法生效)
在终端执行
mvn clean install -U
等他运行完,就ok了
方法二(如果不想费事,只想快速解决这个问题)(还是建议方法一)
将所有的注解都删掉,然后右键单击选择generate
全参构造,无参构造,getset方法,还有不要忘了tostring方法(如果不带上tostring)那么你的json数据在输出的时候,他会给你输出一个地址,而不是我们想要的键值对的那种形式。
实战篇02短信登录 利用资料中的mysql语句创建数据表时报错
问题描述
创建数据表的时候报错
解决
先创建数据库,在创建的数据库里创建控制台。再复制粘贴上去。
先右键单击@localhost
再点击New
再点击Schema,输入数据库的名字(我觉得hmdp就挺好)
点击你新创建的数据库,再点击New,再点击Query Console
在新创建的Console中将资料里给的复制粘贴过来,全选然后点击运行。
数据库就创建好了
p29实战篇-08.短信登录 LoginIntercepter类里强转(网课User但系统提示UserDTO) 测试的时候登录校验功能还是没有实现
问题描述
LoginIntercepter类里强转(网课User但系统提示UserDTO)
测试的时候登录校验功能还是没有实现,点击后还是无法留在登录后的界面
解决
第一个问题就写UserDTO,它后面会改的
第二个问题
也不用管,它没改完,下一节课跟着做完,就可以正常登录了。
要注意
MvcConfig这个类中的这个注解不要忘记添加了。很多朋友都忘记了。
p30实战篇-07.短信登录beanutil报错
问题描述
按着网课里的输入但一直报错
解决
是打错字了,之前在苍穹外卖那块一直写的是Beanutils,但这里我们应该写BeanUtil
改过来就好了
同时,注意上面我们应该引用hutool下的包。
p34实战篇-11.短信登录 在最后测试的时候,更新了RefreshTokenIntercepter后,再次运行idea刷新后,前端界面没有退出无法登录
问题描述
在最后测试的时候,更新了RefreshTokenIntercepter后,再次运行idea刷新后,前端界面没有退出无法登录。
在redis里的TTL也和老师的不一样,是一个很大的值。
解决
第一个问题,是因为,我们的redis里面有token,所以,不会自动退出。
第二个问题是因为你的RedisConstants这个类里面的这个值写的是36000L.改过来就好了。
P37商户点评缓存作业,用了string和list两种方法,可以直接复制粘贴
为了保持所有代码的装逼性,我们先在RedisContants这个类里面添加一个常量。后面会用。
用String类型的方法
controller
@GetMapping("list")
public Result queryTypeList() {
return typeService.queryTypeList();
}
ShopTypeServiceImpl
package com.hmdp.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.hmdp.dto.Result;
import com.hmdp.entity.ShopType;
import com.hmdp.mapper.ShopTypeMapper;
import com.hmdp.service.IShopTypeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import static com.hmdp.utils.RedisConstants.SHOP_LIST_KEY;
@Service
public class ShopTypeServiceImpl extends ServiceImpl<ShopTypeMapper, ShopType> implements IShopTypeService {
@Resource
private StringRedisTemplate stringRedisTemplate;
@Override
public Result queryTypeList() {
String shopListJson = stringRedisTemplate.opsForValue().get(SHOP_LIST_KEY);
if (StrUtil.isNotBlank(shopListJson)) {
List<ShopType> shopTypeList = JSONUtil.toList(shopListJson, ShopType.class);
return Result.ok(shopTypeList);
}
List<ShopType> shopTypeList = query().orderByAsc("sort").list();
if (CollectionUtil.isEmpty(shopTypeList)) {
return Result.fail("出错了,数据不存在");
}
String jsonStr = JSONUtil.toJsonStr(shopTypeList);
stringRedisTemplate.opsForValue().set(SHOP_LIST_KEY, jsonStr);
return Result.ok(shopTypeList);
}
}
用list类型的方法
(前面都一样)。将对应部分给他提换掉就可以了。
@Resource
private StringRedisTemplate stringRedisTemplate;
@Override
public Result queryTypeList() {
List<String> shopTypeList = stringRedisTemplate.opsForList().range(SHOP_LIST_KEY, 0, -1);
if(CollectionUtil.isNotEmpty(shopTypeList)){
List<ShopType> list = JSONUtil.toList(shopTypeList.get(0), ShopType.class);
return Result.ok(list);
}
List<ShopType> typeList = query().orderByAsc("sort").list();
if(CollectionUtil.isEmpty(typeList)){
return Result.fail("列表信息不存在");
}
String jsonStr = JSONUtil.toJsonStr(typeList);
stringRedisTemplate.opsForList().leftPushAll(SHOP_LIST_KEY, jsonStr);
return Result.ok(typeList);
}
p44实战篇商户查询缓存 jmeter如何整
问题描述
忽然老师蹦出来一个全新的软件,没有任何引入,对于我这种零基础很不友好,很打击学习的信心和跟着做的兴趣及动力。这里我补上,大家可以直接跟着做。
解决
官方下载网页
Apache JMeter - Download Apache JMeter
进去以后直接点这里就可以。
我是参考这篇博客的
Jmeter安装教程【5.5】【Windows】jmeter详细安装配置教程,装不好你打我-CSDN博客
最后整完是这个样子
调整
这是网课里的,我们的和他不一样,如下操作调整设置
按图点击,也可以设置为别的
调节字体大小,点击如图位置就可以了
操作
右键单击“测试计划”,如图一直点。
右键单击线程组,如图点击添加HTTP请求。
右键单击HTTP请求,如图点击创建查看结果树。
P50优惠券秒杀,老师postman里面的测试数据,可以直接复制粘贴(自己打容易出错)
问题描述
这个位置的测试的数据我看老师给的资料里面没有,我自己打出来,然后用了下,可以的。
解决
我是直接在Apifox里面新建一个接口,然后照着视频里的打上去
1 注意要选择POST
2 上面的"网址"
http://localhost:8081/voucher/seckill
3 下面的body
{
"shopId": 1,
"title": "100代金券",
"subTitle": "周一至周日可使用",
"rules": "全场通用\\无需预约\\可无限叠加\\不兑现不找零\\仅限零食",
"payValue": 8000,
"actualValue": 10000,
"type": 1,
"stock": 100,
"beginTime": "2025-01-25T10:09:17",
"endTime": "2025-02-25T10:09:17"
}
P52优惠券秒杀,一个新的软件JMeter,不知道在哪里整的
问题描述
出现了一个新的软件,资料里面没有,然后,也没有讲过,怎么整
解决
直接自己安装,这个它资料里没有,但完全可以自己来。
我是参考这篇博客的
Jmeter安装教程【5.5】【Windows】jmeter详细安装配置教程,装不好你打我-CSDN博客
最后整完是这个样子
补充一下那个博客里面没有的
进去以后直接点这里就可以。
P55优惠券秒杀 快捷键问题 Ctrl+D显示不出来老师给的界面
问题描述
Ctrl+D显示不出来老师给的界面
解决
右键单击“HmDianPingApplication:8081”
然后再点击,如图。就可以找到这个界面了。可能是这个软件已经更新了。快捷键变了,我们可以看到这个快捷键是Shift+F4
p55优惠券秒杀 左下角和老师的不一样 idea左下角没有Spring Boot
问题描述
左下角没有application选项
解决
下方services的那个“+”
然后点击图中所示的位置。就可以了
出现这个问题,有很大概率是因为我们不小心右键单击application然后又点击了Hide Configuration
P55HmDianPingApplication2显示不出来
问题描述
按CTRL+D显示不出来。然后看弹幕上告诉你右键单击HmDianPingApplication,再点击Edit Configuration。但是就是不一样。按照弹幕的各种方式都是不行的。就是不能将HmDianPingApplication2完整地展示出来。
解决
我开始
CTRL+D无法正常显示出来,但是后来又可以了,可能是因为我当时选中的是上面的这个然后按的快捷键导致的。
实际是要选中下面的HmDianPingApplication再按快捷键。就可以了
如果由于各种原因还是不行。那么可以右键单击HmDianPingApplication再选择Copy Configuration(弹幕里说选择Edit Configuration的做法是错误的)
进来以后,首先将名字改一下,再点击Modify options
下滑,找到Add VM options
这时就会出现VM options这个窗口了
输入:
--service.port:8082
点击apply,再点击OK就可以了
这是我的已经成功的。
希望可以帮到你,有问题可以在评论区问我。求赞,谢谢!!
p63unlock.lua不知道怎么整
问题描述:
这个位置的这个unlock.lua文件是怎么生成的。老师给的不是很清楚。
解决
右键单击resources。如图
输入
回车,然后界面的上方,大概是在这个位置,会有让你引入这个依赖的选项,我的已经没有了。
他会出来大概三个选项。然后再选择emmylua
就可以了。
后面的这段脚本
if(redis.call('get',KEYS[1])==ARGV[1]) then
return redis.call ('del',KEYS[1])
end
return 0
后面的问题等我做完就会更新。