iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >如何运行黑马程序员redis项目黑马点评(hm-dianping)、常见报错解决与部分接口的测试方法
  • 197
分享到

如何运行黑马程序员redis项目黑马点评(hm-dianping)、常见报错解决与部分接口的测试方法

redis数据库mysqlpostman经验分享 2023-09-02 13:09:13 197人浏览 安东尼
摘要

文章目录 一、相关链接二、下载代码方法一:使用git clone方法二:直接下载程序zip压缩包 三、如何运行这份代码运行sql文件1、先新建数据库hmdp2、导入项目中的hmdp.sql

文章目录

一、相关链接

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: 8081spring:  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>mysqlgroupId>            <artifactId>mysql-connector-javaartifactId>            <scope>runtimescope>            <version>5.1.47version>        dependency>

注意这里的mysql驱动是mysql5版本的驱动,若使用的是mysql8.0+,则需要修改这里的版本号,对于版本号的处理可以注释掉(因为spring-boot-starter-parent2.3.12.RELEASE默认配置的是mysql8.0+版本)或者自行指定对应的版本号

<dependency>            <groupId>mysqlgroupId>            <artifactId>mysql-connector-javaartifactId>            <scope>runtimescope>        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;@Configurationpublic 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 yesrequirepass 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)
在这里插入图片描述

3、在测试其他方法前在header中添加参数authorization,参数值为token

在这里插入图片描述

来源地址:https://blog.csdn.net/GCTTTTTT/article/details/128020789

您可能感兴趣的文档:

--结束END--

本文标题: 如何运行黑马程序员redis项目黑马点评(hm-dianping)、常见报错解决与部分接口的测试方法

本文链接: https://www.lsjlt.com/news/390889.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作