码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 如何运行黑马程序员redis项目黑马点评(hm-dianping)、常见报错解决与部分接口的测试方法


    文章目录

    • 一、相关链接
    • 二、下载代码
      • 方法一:使用git clone
      • 方法二:直接下载程序zip压缩包
    • 三、如何运行这份代码
      • 运行sql文件
        • 1、先新建数据库hmdp
        • 2、导入项目中的hmdp.sql文件
      • 修改application.yaml配置文件
        • 配置Mysql
          • 1、配置驱动
          • 2、配置url(这个不一定要改)
          • 3、配置密码
        • 配置redis
        • 完整配置文件参考
      • pom.xml文件修改
      • 修改com.hmdp.config.RedissonConfig
      • 可能出现的报错解决
        • 1、ERR unknown command 'XREADGROUP'. channel:
        • 2、NOGROUP No such key ‘stream.orders’ or consumer group ‘g1’ in XREADGROUP with GROUP option
          • 在redis中运行以下命令:
          • docker中运行方法:
    • 四、接口测试注意事项
      • 正确的测试流程
        • 1、localhost:8080/user/code
        • 2、localhost:8080/user/login
        • 3、在测试其他方法前在header中添加参数authorization,参数值为token

    一、相关链接

    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
    
    • 1

    方法二:直接下载程序zip压缩包

    在这里插入图片描述

    三、如何运行这份代码

    运行sql文件

    以Navicat为例

    1、先新建数据库hmdp

    在这里插入图片描述
    在这里插入图片描述

    2、导入项目中的hmdp.sql文件

    在这里插入图片描述
    在这里插入图片描述

    修改application.yaml配置文件

    配置Mysql

    要注意配置文件中默认的mysql配置是mysql5版本的配置
    因此若使用的是mysql8.0+版本的mysql需要做以下修改;

    1、配置驱动
    driver-class-name: com.mysql.jdbc.Driver
    
    • 1

    改成

    driver-class-name: com.mysql.cj.jdbc.Driver
    
    • 1
    2、配置url(这个不一定要改)
    url: jdbc:mysql://127.0.0.1:3306/hmdp?useSSL=false&serverTimezone=UTC
    
    • 1

    改成

    url: jdbc:mysql://localhost:3306/hmdp?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true
    
    • 1
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    pom.xml文件修改

    <dependency>
                <groupId>mysqlgroupId>
                <artifactId>mysql-connector-javaartifactId>
                <scope>runtimescope>
                <version>5.1.47version>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    <dependency>
                <groupId>mysqlgroupId>
                <artifactId>mysql-connector-javaartifactId>
                <scope>runtimescope>
    
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    修改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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    可能出现的报错解决

    配置好以上几个文件后就可以尝试启动项目了
    在这里插入图片描述
    对于可能出现的报错可以参考以下解决方法:

    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
    
    • 1
    • 2

    文件结构:
    在这里插入图片描述
    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
    
    • 1
    • 2
    • 3
    • 4

    新建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
    
    • 1
    docker中运行方法:

    进入对应redis容器:

    docker exec -it redis_6379_single /bin/bash
    
    • 1

    使用redis-cli客户端连接:

    redis-cli -p 6379
    
    • 1

    在客户端中输入命令:

    XGROUP CREATE stream.orders g1 $ MKSTREAM
    
    • 1

    若redis设置了密码则可能报以下错误:

    (error) NOAUTH Authentication required.
    
    • 1

    需要先进行身份验证:

    auth 密码
    
    • 1

    在这里插入图片描述

    四、接口测试注意事项

    当使用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

    在这里插入图片描述

  • 相关阅读:
    [附源码]Python计算机毕业设计Django微信点餐系统
    云数据库 Redis 性能深度评测(阿里云、华为云、腾讯云、百度智能云)
    Lifecycle 一篇文章就够了
    低代码选型要注意什么问题?
    【MQTT】关于部署含有MQTT协议的程序pod到K8S中出现的问题
    Python基础入门例程59-NP59 提前结束的循环(循环语句)
    洛谷P5904 树形dp,长链剖分优化
    Elasticsearch中可避免的坑
    一小时快速上手win10 docker 、vscode、MobaXterm、git协作开发
    前端菜鸡流水账日记 -- git管理工具(多版本)
  • 原文地址:https://blog.csdn.net/GCTTTTTT/article/details/128020789
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号