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

这篇具有很好参考价值的文章主要介绍了如何运行黑马程序员redis项目黑马点评(hm-dianping)、常见报错解决与部分接口的测试方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、相关链接

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

hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享

git clone https://gitee.com/huyi612/hm-dianping.git

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

hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享

三、如何运行这份代码

运行sql文件

以Navicat为例

1、先新建数据库hmdp

hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享
hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享

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

hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享
hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享

修改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);
    }
}

可能出现的报错解决

配置好以上几个文件后就可以尝试启动项目了
hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享
对于可能出现的报错可以参考以下解决方法:

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运行命令:
hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享

redis.conf:
requirepass为设置redis的密码,可以根据需要进行设置或去掉

appendonly yes
requirepass pwd

文件结构:
hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享
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中需要先设置一个键,根据官方的仓库中解决方法:
hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享

在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 密码

hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享

四、接口测试注意事项

当使用postman等测试工具对部分接口进行接口测试时可能会出现401的错误,且什么都没有返回,原因是因为请求被拦截了
hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享
而被拦截的原因是没有在header中携带token,这里要注意!!header中token值对应的参数是authorization而不是token如下图所示:
hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享

正确的测试流程

1、localhost:8080/user/code

拿到手机验证码
(这里的手机号是数据库中tb_user表中的手机号,貌似也可以使用数据库里没有的手机号)
hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享
后台中拿到验证码:
hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享

2、localhost:8080/user/login

登录拿到token
(返回数据中的data中的即为token)
hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享

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

hm-dianping,非关系型数据库技术,JAVA,redis,数据库,mysql,postman,经验分享文章来源地址https://www.toymoban.com/news/detail-799201.html

到了这里,关于如何运行黑马程序员redis项目黑马点评(hm-dianping)、常见报错解决与部分接口的测试方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 黑马程序员前端 Vue3 小兔鲜电商项目——(一)初始化项目

    Vue3是Vue.js最新的主要版本,它已经于2020年9月18日发布。它提供了许多新功能和性能改进,这些改进使得Vue更易于使用和更具可扩展性。 以下是Vue3的一些主要特性: 更快的渲染:Vue3使用重写的响应式系统,它使用Proxy对象来解决Vue2中的性能瓶颈问题。这使得Vue3的渲染速度比

    2024年02月15日
    浏览(82)
  • 黑马程序员前端 Vue3 小兔鲜电商项目——(七)详情页

    模板代码 创建 srcviewsDetailindex.vue 文件,添加以下代码: 配置路由 在 srcrouterindex.js 中添加对应路由【 /detail/{goodId} 】: 链接跳转 对 srcviewsHomecomponentsHomeNew.vue 文件及其他涉及商品信息的页面修改路由跳转: 封装接口 在 srcapisdetail.js 文件中封装接口用于获取商品信息

    2024年02月10日
    浏览(59)
  • 黑马程序员前端 Vue3 小兔鲜电商项目——(八)登录页面

    登录页面的主要功能就是表单校验和登录登出业务。 account password cdshi0080 123456 cdshi0081 123456 cdshi0082 123456 cdshi0083 123456 cdshi0084 123456 cdshi0085 123456 cdshi0086 123456 cdshi0087 123456 cdshi0088 123456 模版代码 在 srcviewsLoginindex.vue 中添加登录页代码: 配置路由跳转 修改 srcviewsLayoutcompon

    2024年02月10日
    浏览(54)
  • 黑马程序员课程Vue实战项目_Element-ui——电商后台管理系统-商品管理(商品列表)

    目录 商品列表 一.创建一个子分支 二.创建组件 三.绘制商品列表的页面基本结构 1.面包屑导航  2.卡片视图区域 四.功能 1.搜索  2.删除  3.添加 五.提交代码 git branch——查看当前所在分支 git checkout -b goods_list——创建新的子分支goods_list git branch——查看当前所在分支 git pus

    2024年02月08日
    浏览(56)
  • 基于springboot+Redis的前后端分离项目(三)-【黑马点评】

    🎁🎁资源文件分享 链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwd=eh11 提取码:eh11 每个店铺都可以发布优惠券: 当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增ID就存在一些问题: id的规律性太明显 受单表数据量的限制 场景分析

    2024年02月10日
    浏览(41)
  • 基于springboot+Redis的前后端分离项目(七)-【黑马点评】

    🎁🎁资源文件分享 链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwd=eh11 提取码:eh11 发布探店笔记 探店笔记类似点评网站的评价,往往是图文结合。对应的表有两个: tb_blog:探店笔记表,包含笔记中的标题、文字、图片等 tb_blog_comments:其他用户对探店笔记的评价 具体发布

    2024年02月13日
    浏览(48)
  • 基于springboot+Redis的前后端分离项目(一)-【黑马点评】

    🎁🎁资源文件分享 链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwd=eh11 提取码:eh11 黑马点评项目是前后端分离项目,前端部署在nginx服务器上,后端部署在tomcat上,具体将实现以下功能。 短信登录 这一块我们会使用redis共享session来实现。 商户查询缓存 通过学习,我们会理

    2024年02月08日
    浏览(41)
  • 基于springboot+Redis的前后端分离项目(九)-【黑马点评】

    🎁🎁资源文件分享 链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwd=eh11 提取码:eh11 GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有: GEOADD:添加一个地理空间信息,包含

    2024年02月16日
    浏览(42)
  • 基于springboot+Redis的前后端分离项目(八)-【黑马点评】

    🎁🎁资源文件分享 链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwd=eh11 提取码:eh11 针对用户的操作:可以对用户进行关注和取消关注功能。 实现思路: 需求:基于该表数据结构,实现两个接口: 关注和取关接口 判断是否关注的接口 关注是User之间的关系,是博主与粉丝的

    2024年02月16日
    浏览(45)
  • 基于springboot+Redis的前后端分离项目(二)-【黑马点评】

    🎁🎁资源文件分享 链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwd=eh11 提取码:eh11 缓存( Cache),就是数据交换的 缓冲区 ,俗称的缓存就是 缓冲区内的数据 ,一般从数据库中获取,存储于本地代码。(例如: 由于其被 Static 修饰,所以随着类的加载而被加载到 内存之中 ,作为本地缓存

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包