一、相关链接
hm-dianping项目仓库地址:https://gitee.com/huyi612/hm-dianping
项目对应教学视频:https://www.bilibili.com/video/BV1cr4y1671t?p=24(p24-p95)
二、下载代码
hm-dianping项目仓库地址:https://gitee.com/huyi612/hm-dianping
方法一:使用git clone
git clone https://gitee.com/huyi612/hm-dianping.git
方法二:直接下载程序zip压缩包
三、如何运行这份代码
运行sql文件
以Navicat为例
1、先新建数据库hmdp
2、导入项目中的hmdp.sql文件
修改application.yaml配置文件
配置Mysql
要注意配置文件中默认的mysql配置是mysql5版本的配置
因此若使用的是mysql8.0+版本的mysql需要做以下修改;
1、配置驱动
driver-class-name: com.mysql.jdbc.Driver
改成
driver-class-name: com.mysql.cj.jdbc.Driver
2、配置url(这个不一定要改)
url: jdbc:mysql://127.0.0.1:3306/hmdp?useSSL=false&serverTimezone=UTC
改成
url: jdbc:mysql://localhost:3306/hmdp?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true
3、配置密码
将password改成自己mysql的password
配置redis
这里的redis是单节点的redis,若没有单节点的redis建议在docker里面新建一个(ps:redis版本要5.0+,因此windows中的redis可能用不了,后面会提到)
在redis配置中配置好host(宿主机ip),端口,密码(如果有的话需要配置,没有的话可以空着或者不写)
完整配置文件参考
#server:
# port: 8081
spring:
application:
name: hmdp
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://127.0.0.1:3306/hmdp?useSSL=false&serverTimezone=UTC
url: jdbc:mysql://localhost:3306/hmdp?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true
username: root
password: pwd
redis:
host: ip
port: 6379
password:
lettuce:
pool:
max-active: 10
max-idle: 10
min-idle: 1
time-between-eviction-runs: 10s
jackson:
default-property-inclusion: non_null # JSON处理时忽略非空字段
mybatis-plus:
type-aliases-package: com.hmdp.entity # 别名扫描包
logging:
level:
com.hmdp: debug
pattern:
dateformat: mm:ss.SSS
pom.xml文件修改
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>5.1.47</version>
</dependency>
注意这里的mysql驱动是mysql5版本的驱动,若使用的是mysql8.0+,则需要修改这里的版本号,对于版本号的处理可以注释掉(因为spring-boot-starter-parent2.3.12.RELEASE默认配置的是mysql8.0+版本)或者自行指定对应的版本号
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<!-- <version>5.1.47</version>-->
</dependency>
修改com.hmdp.config.RedissonConfig
这个程序中也需要按照自己的redis的ip和密码进行配置
package com.hmdp.config;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RedissonConfig {
@Bean
public RedissonClient redissonClient(){
// 配置
Config config = new Config();
// config.useSingleServer().setAddress("redis://192.168.150.101:6379").setPassword("123321");
// config.useSingleServer().setAddress("redis://ip:6379"); //没有设置密码可以省略setPassword
config.useSingleServer().setAddress("redis://ip:6379").setPassword("pwd");
// 创建RedissonClient对象
return Redisson.create(config);
}
}
可能出现的报错解决
配置好以上几个文件后就可以尝试启动项目了
对于可能出现的报错可以参考以下解决方法:
1、ERR unknown command ‘XREADGROUP’. channel:
这个报错可能是因为redis版本太低了
redis 要求版本5.0+因为程序中使用到了 stream 特性。(https://gitee.com/zhijiantianya/ruoyi-vue-pro/issues/I3QISB)
因此windows中的redis可能用不了,建议在docker中新建一个单节点的redis
参考配置文件与docker运行命令:
redis.conf:
requirepass为设置redis的密码,可以根据需要进行设置或去掉
appendonly yes
requirepass pwd
文件结构:
docker运行命令:
注意这里的挂载地址需要根据实际的地址进行修改
docker run --name redis_6379_single -p 6379:6379 --privileged=true \
-v /mydata/redis_single_6379/data:/data \
-v /mydata/redis_single_6379/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
新建5.0+版本的redis后记得修改配置文件与RedissonConfig中的相关信息
2、NOGROUP No such key ‘stream.orders’ or consumer group ‘g1’ in XREADGROUP with GROUP option
出现这个报错是因为redis中需要先设置一个键,根据官方的仓库中解决方法:
在redis中运行以下命令:
XGROUP CREATE stream.orders g1 $ MKSTREAM
docker中运行方法:
进入对应redis容器:
docker exec -it redis_6379_single /bin/bash
使用redis-cli客户端连接:
redis-cli -p 6379
在客户端中输入命令:
XGROUP CREATE stream.orders g1 $ MKSTREAM
若redis设置了密码则可能报以下错误:
(error) NOAUTH Authentication required.
需要先进行身份验证:
auth 密码
四、接口测试注意事项
当使用postman等测试工具对部分接口进行接口测试时可能会出现401的错误,且什么都没有返回,原因是因为请求被拦截了
而被拦截的原因是没有在header中携带token,这里要注意!!header中token值对应的参数是authorization而不是token如下图所示:
正确的测试流程
1、localhost:8080/user/code
拿到手机验证码
(这里的手机号是数据库中tb_user表中的手机号,貌似也可以使用数据库里没有的手机号)
后台中拿到验证码:
2、localhost:8080/user/login
登录拿到token
(返回数据中的data中的即为token)
文章来源:https://www.toymoban.com/news/detail-799201.html
3、在测试其他方法前在header中添加参数authorization,参数值为token
文章来源地址https://www.toymoban.com/news/detail-799201.html
到了这里,关于如何运行黑马程序员redis项目黑马点评(hm-dianping)、常见报错解决与部分接口的测试方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!