前言
记录学习过程中遇到的各种问题,顺便加深对编程语言的学习。最好是通俗易懂。
就我而言,学习此项目,遇到不会的就必须知道个所以然,好奇心害死猫
1.环境搭建
其实,一开始学习,里面有很多陌生的名词,其实一上来就讲这些,对我而言,还是云里雾里的,所以直接开始正片,开始实践,哪里不会再去研究,我觉得这样更好。至少不用因为很多都不知道而感到压力巨大了。从而变成从入门到放弃了。
1.1下载软件 (建议WiFi下载)
第一种方式(不推荐使用。而且我也没弄完,放弃了。所以你也可以不看,这个内容作为学习时保留的过程。踩坑,这个cmd窗口下载镜像的实在太慢了,因此不推荐此种方式。) 建议直接用第二种方式
VirtualBox ≈ 电脑(大小105M左右)正常下载
目的:用于安装各种项目中需要用到的软件。
虚拟机≈电脑(就是一个在你自己的电脑上又安装了一个电脑,而这个虚拟机可以安装各种软件,仅此而已)
实操:
我这里选择的是VirtualBox。官网下载:Downloads – Oracle VM VirtualBox
根据自己的电脑系统选择安装,我的是Windows系统
图-下载页面
下载好之后,选择一键安装即可。
注意:
选择安装在非c盘之外的盘符( 理解:一般软件安装不会选择安装在c盘,因为C盘是系统盘,可能会越来越大,会导致电脑出现各种问题(比如,系统升级,需要C盘空间足够才可以)。因此c盘尽量要保证有一定的空间。如果您的电脑C盘够大,请随意用)
需要自己的电脑开启CPU的虚拟化功能才能正常使用这个软件(谨慎操作,这涉及到电脑的配置,百度查看如何开启,但是要知道自己的电脑型号。每个电脑开启方式不同,不然一不小心把电脑弄坏了。进入bios之后,查看字样CPU Configuration,按enter进入之后,选择Intel Virtualization Technology [Enabled]这样的就可以了。如果是开启的就不用管了。实在没有就问问别人咋弄的)
Vagrant ≈ 操作系统(大小261M左右) 下载卡住一半
Windows: Install | Vagrant | HashiCorp Developer
下载到一半卡住不动了,好家伙,迅雷下载都不行了。建议使用IDM或者XDown下载。这两个软件又需要折腾,自己百度吧
默认给我安装到c盘了,无语
打开cmd
# 找到一个目录,然后运行以下指令
vagrant init centos/7 #即可初始化一个 centos7 系统
vagrant up # 即可启动虚拟机,系统 root 用户的密码是 vagrant
到此处下载镜像实在太慢了,就放弃了,还不如直接下载个镜像直接用
第二种(推荐)
Vmware 直接官网下载
镜像的话,推荐Nginx Directory 大小4.4G左右
iso.mirrors.ustc.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.isocentos-7-isos-x86_64安装包下载_开源镜像站-阿里云 (aliyun.com)
vmware创建虚拟机等配置
首先测试能否联网
ping 192.168.1.1 # ping自己的主机ip
ping baidu.com # 查看是否能上网
如果不能的话,就需要进行设置
1.第一步
2.打开vmware网络编辑器
进入nat设置查看ip
1.子网IP 和网关IP前三个网段要一样
2.记住这个网关ip
子网IP和子网掩码的最后一位2要一样,如子网掩码为0,则ip最后一位也为0
进入linux设置网络,ip一定要和自己的对应 下面的只是wo'd
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static //设置成静态获取
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698
ONBOOT=yes //设置成yes ,开机启动
IPADDR=192.168.2.120 //前面三位和网关保持一致,后面随意,如果后面一位不行 就多试试几个不同的
NETMASK=255.255.255.0 //固定设置
GATEWAY=192.168.2.2 //查看的虚拟机网关 就是刚刚查看的网关IP 要保证一样
DNS1=192.168.2.2 //设置成和网关相同即可
cd /etc/sysconfig/network-scripts/ # 进入此目录
vi ifcfg-ens33 或者 vi ifcfg-ens32 # 使用vi编辑器编辑 有的设置可能不一样 自己找找
# 在末尾添加以下内容 一定要根据自己的ip改 比如你的子网ip为192.168.10.20
# 你就可以设置为192.168.10.30 只要最后一段不一样就行,
# netmask和getway一定要和net网络设置一样即可 dns1 设置为网关地址即可
IPADDR=192.168.10.30 # ip地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.10.2 # 网关 与之前看到的一定要一样
DNS1=192.168.10.2 # dns域名解析器
DNS2=8.8.8.8
之后重启网卡
systemctl restart network # 重启网卡
# 再次ping
ping baidu.com
finalshell (官网下载即可,用来本地连接虚拟机,简化虚拟机操作)
虚拟机中安装docker
首先修改yum源,因为使用yum指令安装软件,有的时候会非常慢,加快速度
# 备份原有的yum
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 使用新 yum 源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 此项命令建议不执行,占有磁盘。生成缓存 就是把服务器的包信息下载到本地电脑缓存起来,makecache#
# 建立一个缓存以后用install时就在缓存中搜索,提高了速度。
yum makecache
安装docker
# 卸载系统之前的 docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 安装yum工具
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
# 设置docker镜像源 :???
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 这个作用不知道是什么
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
# 应该是开启缓存
yum makecache fast
# 安装docker
yum install -y docker-ce
工作上不要随便关闭防火墙!!!,如果是学习上可以
启动docker前切记要关闭linux的防火墙,这里只是学习上用一下。工作上不要这样弄。否则你不能访问到linux未暴露的端口。
其实也可以暴露相关端口。不细说了
# 启动docker
# Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!
# 启动docker前,一定要关闭防火墙后!!
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙 (推荐)
systemctl disable firewalld
# 通过命令启动docker:
systemctl start docker # 启动docker服务
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
# 设置docker开机自启
systemctl enable docker
配置镜像加速
docker官方镜像仓库网速较差,我们需要设置国内镜像服务:
# 创建文件夹
sudo mkdir -p /etc/docker
# 创建文件并写入内容
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://m0z0l0cp.mirror.aliyuncs.com"]
}
EOF
# 重新加载配置文件daemon
sudo systemctl daemon-reload
# 重启docker
sudo systemctl restart docker
至此,安装完毕
docker拉取mysql
国内镜像仓库 Docker
# 拉取mysql镜像 我使用的版本
docker pull mysql:5.7.25
# 在创建之前由于要挂载数据卷(理解:就是将本机的目录与容器内的目录合并,或者是文件替换),因此需 # 要将自己的配置文件替换容器内的
# 可以在本机将以下内容放到一个名为hmy.cnf中,然后将这个文件上传到虚拟机中 这里可以使用远程连接工
# 具,更方便上传
# 首先要知道配置文件在哪里 先创建一个容器
docker run --name mysqltest -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.25
# 进入容器,并查看配置文件位置
docker exec -it mysqltest bash
# 查找Docker内,MySQL配置文件my.cnf的位置
mysql --help | grep my.cnf
# 显示如下,意思是路径按优先排序,会是在以下路径里:
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
# 配置文件的路径不一定都一样,有些博客介绍的位置是在/etc/my.cnf。而Ubuntu系统上,实际存在位置# # 是在/etc/mysql/my.cnf,可以查看
cd /etc/mysql
# 踩坑,其实都是软连接,经过我百度 真正的是在这个目录/etc/mysql/mysql.cnf
# 然后退出容器
# 创建两个文件夹存放mysql的配置文件和数据
mkdir -p /data/mysql/conf && mkdir -p /data/mysql/data && mkdir -p /data/mysql/log
# 将临时容器里 MySQL 的配置文件复制到该路径,目的:日后需改配置,直接在挂载路径的配置文件上修改# 即可。
docker cp mysqltest:/etc/mysql/mysql.cnf /data/mysql/conf
# 这里说的是应该将mysql.cnf重命名为my.cnf即可。不知道需不需要重命名
# 我实践的是不重命名的看能不能行
将以下配置内容放到mysql.cnf中,使用本机软件打开更方便,不要使用虚拟机操作,太麻烦
[mysqld]
skip-name-resolve # skip-name-resolve: 跳过域名解析 解决 MySQL 连接慢的问题
character_set_server=utf8
datadir=/var/lib/mysql
server-id=1000
# 删除之前的测试容器
docker rm -f mysqltest
# 创建新的容器
docker run --restart=always \
--name mysql \
-v /data/mysql/conf/mysql.cnf:/etc/mysql/my.cnf \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-d mysql:5.7.25
# 查看日志
docker logs -f mysql
# 然后使用本机数据库连接工具navicat进行连接 连接成功 说明my.cnf和mysql.cnf名字都可以(推荐)
# 当然你也可以通过容器的 mysql 命令行工具连接(不推荐)太麻烦
docker exec -it mysql mysql -uroot -proot
# 设置 root 远程访问 不知道有什么用 项目运行之后建立连接才能成功
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
select host,user,plugin,authentication_string from mysql.user;
# 参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /data/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /data/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /data/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
docker拉取redis
# 拉取redis镜像 不加版本号,默认是最新版 latest
docker pull redis
# 同样我们也需要配置文件,通过在线下载redis.conf配置文件
# 创建需要挂载的目录
mkdir -p /data/redis/conf && mkdir -p /data/redis/data
# 进入目录
cd /data/redis/conf
# 安装wget工具
yum -y install wget
# 获取redis配置文件
wget http://download.redis.io/redis-stable/redis.conf
# 备份配置文件
cp redis.conf redis.conf.bak
修改redis.conf文件中的一些配置:
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行 但是如果docker 使用了-d就不可以用了
# daemonize yes
# 密码,设置后访问Redis必须输入密码
requirepass 123456
# 监听的端口
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"
创建容器
docker run --restart=always \
-p 6379:6379 \
--name redis \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data \
-d redis:latest \
redis-server /etc/redis/redis.conf
# 可以在配置文件中配置
--appendonly yes
# 配置文件已经配置
--requirepass 123456
测试
docker exec -it redis redis-cli
使用本机redis客户端软件连接redis(推荐)
maven下载及配置 下载windows版 直接下
找到配置文件conf目录下的settings.xml 然后添加这项配置 进去之后 可以按CTRL+F搜索mirrors
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
</profile>
</profiles>
配置本地仓库
<localRepository>D:\mavenRepository</localRepository>
idea和vscode安装插件
idea 安装 lombok、mybatisx 插件
Vscode 安装开发必备插件
Vetur —— 语法高亮、智能感知、Emmet 等
包含格式化功能, Alt+Shift+F (格式化全文),Ctrl+K Ctrl+F(格式化选中代码,两个 Ctrl需要同时按着)
EsLint —— 语法纠错
Auto Close Tag —— 自动闭合 HTML/XML 标签
Auto Rename Tag —— 自动完成另一侧标签的同步修改
JavaScript(ES6) code snippets — — ES6 语 法 智 能 提 示 以 及 快 速 输 入 , 除 js 外 还 支
持.ts,.jsx,.tsx,.html,.vue,省去了配置其支持各种包含 js 代码文件的时间
HTML CSS Support —— 让 html 标签上写 class 智能提示当前项目所支持的样式
HTML Snippets —— html 快速自动补全 // 已经被弃用
Open in browser —— 浏览器快速打开
Live Server —— 以内嵌服务器方式打开
Chinese (Simplified) Language Pack for Visual Studio Code —— 中文语言包
使用git进行版本控制 git≈代码存放位置
# 配置用户名
git config --global user.name "username" //(名字)
# 配置邮箱
git config --global user.email "username@email.com" //(注册账号时用的邮箱)
配置ssh免密登录,就是每次登录不需要认证了
# ssh免密登录
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
# 然后连续三次回车。 用户目录下会有 id_rsa 和 id_rsa.pub
# 查看密钥
cat ~/.ssh/id_rsa.pub
# 然后登录进入 gitee,在设置里面找到 SSH KEY 将id_rsa.pub 文件的密钥内容粘贴进去
# 使用 ssh -T git@gitee.com 测试是否成功即可
ssh -T git@gitee.com
2.开发
1.开发微服务
从gitee初始化一个项目,在这里去进行一些基本设置
然后去复制仓库地址
在idea中获取此仓库的代码
去新建模块
这里创建模块的时候会出现一个让你提交到本地仓库的提示,先点取消
由于看弹幕有的直接点确定了。不过就算点了也没什么大事吧。反正先不要点。目前这个git我也不太懂。
创建项目,这里需要注意的是视频中springboot版本选择的是2.1.8版本,现在idea中已经没有这个版本了,所以我们需要在pom文件更改一下自己的版本号,以防之后出现各种bug修改以下几处,如果pom依然爆红,那就是没有反应过来,不用管它<version>${spring-cloud.version}</version>这个也爆红,我看视频里面也爆红了,暂时不管<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.8.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
<properties> <java.version>8</java.version> <spring-cloud.version>Greenwich.SR3</spring-cloud.version> </properties>
接下来同样步骤将以下模块创建成功。商品服务 product仓储服务 warehouse订单服务 order优惠券服务 coupon用户服务 user
因为是聚合工程所以需要你在父工程下创建pom文件 可以复制一个其他模块的pom文件进行修改
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxx.grainmall</groupId>
<artifactId>grainmall</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>grainmall</name>
<description>谷粒商城-聚合服务</description>
<packaging>pom</packaging>
</project>
但是目前来看,就在只修改了pom文件中的版本号,之后依然有爆红,那么可能是因为下面的插件有问题 这段代码爆红
<configuration> <image> <builder>paketobuildpacks/builder-jammy-base:latest</builder> </image> </configuration>
怎么解决呢,就是把视频中的pom中的这一段代码拿过来替换掉这段代码。注意是build代码块全部替换掉呀,上面我只截取了爆红的代码块
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
最终模块如下:
这样,全部就弄好了 。其实,问题还挺多的。就是需要细心,然后把遇到的问题记录下来。这样以后方便查看自己遇到的坑了。但是我觉得这样一边做一边错误的话,以后这个项目不想看那么多,只想看错误的话,我想就把这些问题汇总到别的地方。名字就叫学习java时遇到的问题。如此以来,这篇文章里有遇到问题的记录。那么另外一遍用来专门记录遇到错误的记录。我暂且称这些问题为“宝术”吧。那么文章名就叫java宝术,理解就是java问题集锦,当然有的问题解决了,有的还尚未解决。
2.聚合工程
这个简单,直接上代码,在父工程的pom文件下加入以下代码
<!-- 模块-->
<modules>
<module>grainmall-product</module>
<module>grainmall-user</module>
<module>grainmall-coupon</module>
<module>grainmall-warehouse</module>
<module>grainmall-order</module>
</modules>
3.提交到gitee
git提交的时候需要定义一些无意义的文件,视频中idea是:
我的idea是在左边位置,不知道你的是在哪里呢
提交之前需要忽略的内容如下
# 设置一些不需要提交的文件
# **/ 表示父目录的任意目录下的名字为mvnw文件不会上传
**/mvnw
**/mvnw.cmd
**/.gitignore
**/.mvn
**/target/
.idea
总体来说,忽略完之后还剩21个文件,跟视频里的一样,如果您的不是的话,要么就是2023年你用的idea生成了其他的文件吧。或者其他原因,不过以上忽略的内容是不需要上传到码云的,只要你设置了就行。提交和推送和视频里的idea不同,只要你找到了就推送就可以了
这里视频教程里安装了一个插件是gitee,你可以安装。我暂时没有安装,但也可以提交
其实以上的都不算太难,遇到了别的问题可以百度。重要的可能在后面。
3.数据库初始化
这里有个问题,就是本地连接不上linux系统上的服务。比如mysql服务。可以看下安装docker时是怎么解决的。如果你安装docker的时候就已经弄好了,就没事了。
这里需要用到的数据库sql脚本资料在,链接:百度网盘 请输入提取码提取:hdt6 然后自己导入到数据库就行了
数据库脚本资料我们是没有的,自己肯定短时间是做不出来的,怎么办,博主已经给我提供好了,本来就是学习用的,在哔哩哔哩评论里面有这个资料连接。大家自取
当然,我也准备了,码:htd6 复制这段内容后打开百度网盘手机App,操作更方便哦
这个数据库设计,当然我觉得可以专门学习下,但是这里已经准备好了。数据库的设计是真难。因为要考虑到各种因素,反正我设计不出来,由于学习这个系统,我们直接用就好了。
这里数据库脚本都提供好了,直接导入到mysql里面就行了。不管你用什么方式都行。
这里有个问题就是docker里面视频里的这个命令
docker update mysql --restart=always
docker update redis --restart=always
如果你用的是先前docker命令启动的容器可以不用这个命令
因为--restart=always 在创建容器的时候已经加了。
docker run --restart=always \
--name mysql \
-v /data/mysql/conf/mysql.cnf:/etc/mysql/my.cnf \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-d mysql:5.7.25
还有个问题就是需要关闭防火墙,如果您的客户端连接不到linux里面的mysql容器的话,这个在前面安装docker的时候就已经说了。这里视频里面没有去关闭,也行也可以。如果你能成功连接也可以不用在操作别的了。弹幕有的说关闭本机和虚拟机的防火墙,其实只用关闭linux的防火墙就行,开发中,还是不要随便关闭防火墙,这里学习,可以用。因为我们需要访问虚拟机中的端口
4.使用人人开源搭建后台管理系统
管理系统≈管理者用的系统,不是给用户用的就行了。
克隆人人开源的代码,大家跟着视频教程走,
人人开源地址:人人开源
这个克隆的是后台管理系统。
然后克隆前端后台管理系统。
将renren-fast模块添加到父模块里面
将后台项目部署到商城项目,记得先删除掉.git文件,加载pom文件,将一些没有下载好依赖下载好,踩坑,有一些依赖并没有下载,可以自己手动下载。可以添加以下代码,下载好之后可以注释掉。
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.14</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.6</version>
</dependency>
发现pom依然有报错,在pom中添加一个代码<relativePath/>放到这个位置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.6</version>
<relativePath/>
</parent>
然后就没有错了,可以启动项目了
安装nodejs
可以使用nvm安装nodejs方便切换nodejs 的版本
并配置好环境变量(≈任何路径都可以使用npm命令),安装时好像是自动配置好了。如果没有就去百度配置
nvm配置加速 打开 settings.txt
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
设置基本配置
nvm install 14.19.0
nvm use 14.19.0
设置全局模块的安装路径到 “node_global” 文件夹,
npm config set prefix "E:\devTools\nodejs\node_global"
设置缓存到 “node_cache” 文件夹
npm config set cache "E:\devTools\nodejs\node_cache"
查看是否设置成功
npm config get prefix
npm config get cache
设置镜像,加快依赖下载速度
npm config set registry https://registry.npmmirror.com
查看是否设置成功
npm config get registry
经过我的验证,视频里的node版本较低,因此我推荐安装高一点的版本14.17.0,可以成功使用。
我之前安装过,由于视频里用的版本是v10.16.3,所以我要切换一下版本
我安装过nvm,可以很方便的切换nodejs的版本
nvm自己安装好并配置好,如果不会可以百度。
我这里只是切换版本
nvm ls // 看安装的所有node.js的版本
nvm list available // 显示可以安装的所有node.js的版本
安装视频中对应的nodejs版本 10.16.3
nvm install 10.16.3 // 例如:nvm install 14.19.0
查看版本
node -v // 查看node版本
其他命令,这里参考的
nvm命令行操作命令
1,nvm nvm list 是查找本电脑上所有的node版本
- nvm list 查看已经安装的版本
- nvm list installed 查看已经安装的版本
- nvm list available 查看网络可以安装的版本
2,nvm install 安装最新版本nvm
3,nvm use <version> ## 切换使用指定的版本node
4,nvm ls 列出所有版本
5,nvm current显示当前版本
6,nvm alias <name> <version> ## 给不同的版本号添加别名
7,nvm unalias <name> ## 删除已定义的别名
8,nvm reinstall-packages <version> ## 在当前版本node环境下,重新全局安装指定版本号的npm包
9,nvm on 打开nodejs控制
10,nvm off 关闭nodejs控制
11,nvm proxy 查看设置与代理
12,nvm node_mirror [url] 设置或者查看setting.txt中的node_mirror,如果不设置的默认是 https://nodejs.org/dist/
nvm npm_mirror [url] 设置或者查看setting.txt中的npm_mirror,如果不设置的话默认的是: https://github.com/npm/npm/archive/.
13,nvm uninstall <version> 卸载制定的版本
14,nvm use [version] [arch] 切换制定的node版本和位数
15,nvm root [path] 设置和查看root路径
16,nvm version 查看当前的版本
安装完之后,将前端项目用vscode跑起来,使用
npm install
踩坑经历,不需要看,下面有可以用的方案,从目录跳到下一个标题解决npm install fail!!
我这里出现了bug,花了好几个小时搞定,看了弹幕说换版本的,换python版本的都不太行,
百度有一个办法说可以,我们就用这个办法。
看到报错信息,一定要从第一行开始报错的地方看,一个一个解决。如果包含如下内容,你也可以试试(我在2023年11月16日07:13:06使用的这个方法,我试错了几个小时,就这个方案可以,)
既然下载失败,我们手动下载,直接去这里下载 https://chromedriver.storage.googleapis.com/2.27/chromedriver_win32.zip
下载到一个不含中文路径的目录,不然容易出bug,然后进行安装,最好不要有中文路径
npm install chromedriver --chromedriver_filepath=你的下载路径\chromedriver_win32.zip
终于安装成功了!!!
然后接着执行
npm install
一堆错
这个下载不了不管了
这个我们按他的建议安装,结果卡一半,等不下去了
npm install node-sass@^4.0.0
于是百度解决第一个问题就是缺少这个windows-build-tools,可能github这个依赖已经没有了,所以下载不了了,于是这样解决
打开cmd以管理员身份运行。
npm install --global --production windows-build-tools
结果都不行,其实最终不可以的原因竟然是不能安装这个依赖
node-sass@^4.0.0,对就是这个依赖,气死了,废了这么长时间
只需要升级node版本我用的14.17.0的版本可以使用。其他的都不用管了
有个依赖需要手动下载,直接去找这个连接下载即可,这个链接在报错信息里面有
既然下载失败,我们手动下载,直接去这里下载 https://chromedriver.storage.googleapis.com/2.27/chromedriver_win32.zip
下载到一个不含中文路径的目录,不然容易出bug,然后进行安装,最好不要有中文路径
npm install chromedriver --chromedriver_filepath=你的下载路径\chromedriver_win32.zip
终于安装成功了!!!
只需要升级node版本我用的14.17.0的版本可以使用。其他的都不用管了。
去网上百度怎么升级node的版本,或者替换旧版本的都行
接着npm install就可以了
发现需要安装node-sass@^4.0.0,使用这个node 14.17.0版本的去安装,视频中的版本太低,安装不了。也许是当时可以,现在不行了。
npm install node-sass@^4.0.0
一定要等待安装成功,不能取消,如果中途卡住的话,取消之后记得删除node_modules文件再重试。
解决npm install fail
第一个错误:
有个依赖需要手动下载,直接去找这个连接下载即可,这个链接在报错信息里面有
既然下载失败,我们手动下载,直接去这里下载 https://chromedriver.storage.googleapis.com/2.27/chromedriver_win32.zip
下载到一个不含中文路径的目录,不然容易出bug,然后进行安装,最好不要有中文路径
npm install chromedriver --chromedriver_filepath=你的下载路径\chromedriver_win32.zip
终于安装成功了!!!
接着npm install就可以了
会发现第二个错误:
但是不能安装node-sass@^4.0.0,否则会报错。需要与版本匹配,以下是我百度里搜集到的参考一下。
在这里我们node是10.x版本,因此选择node-sass4.9 版本的进行安装,如果是其他版本可以自行安装。
npm install node-sass@4.9
然后再次npm install 就可以了。
然后运行npm run dev
npm run dev
就会看到成功界面了
这里之前我们启动了后台管理系统,这是后台管理的前端系统。
5.快速开发——逆向工程搭建&使用
人人开源地址:人人开源
然后输入以下代码
git clone https://gitee.com/renrenio/renren-generator.git
然后去刷新maven,
如果renren-generator没有亮,就添加这个模块,操作如下
进行配置
代码生成配置
最后启动项目。
访问网站,生成代码
将生成的main文件放到对应的项目中
删除多余文件
创建公共模块
添加依赖
其中PageUtils,R等实体类在renren-fast模块中复制过来直接用就可以
<dependencies>
<!-- mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.13</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
然后重启这个项目,重新生成新的代码
最后提交git
6. 快速开发——配置,测试微服务crud
配置
项目结构,下面这些没有的类都去renren-fast模块去复制过来用
问题:constant类报错,解决,将以下报错代码先注解
在common模块pom中添加以下依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
product模块下新建application.yml配置文件并输入以下配置
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://192.168.80.20:3306/gulimall_pms
在product的引导类汇总加入@MapperScan注解
/**
* 1.整合mybatis-plus
* 1)导入依赖
* <dependency>
* <groupId>com.baomidou</groupId>
* <artifactId>mybatis-plus-boot-starter</artifactId>
* <version>3.2.0</version>
* </dependency>
* 2)配置
* 1.配置数据源
* 1)导入数据库的驱动
* 2)在application.yml配置数据源相关信息
* 2.配置mybatis-plus:
* 1)使用@MapperScan
* 2)告诉mybatis-plus,sql映射文件位置
*/
@MapperScan("com.huangskyking.grainmall.product.dao")
product模块下的application.yml中配置mybatis-plus
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
global-config:
db-config:
id-type: auto
测试
测试类中有这个报错就这样处理
开始测试crud
@Autowired
private BrandService brandService;
/**
* 插入数据
*/
@Test
void insert() {
// 保存
BrandEntity brandEntity = new BrandEntity();
brandEntity.setName("小米");
brandService.save(brandEntity);
System.out.println("保存成功...");
}
/**
* 修改数据
*/
@Test
void update() {
// 保存
BrandEntity brandEntity = new BrandEntity();
brandEntity.setBrandId(13L);
brandEntity.setDescript("666");
brandService.updateById(brandEntity);
System.out.println("修改成功...");
}
/**
* 查询数据
*/
@Test
void query() {
// 查询数据
List<BrandEntity> brandEntityList = brandService.list(Wrappers.<BrandEntity>lambdaQuery().eq(BrandEntity::getBrandId, 13L));
brandEntityList.forEach(System.out::println);
}
添加数据
修改数据
查询数据
发现,上面的内容我不知道自己在干嘛,就是一味在做。因此,需要时刻反思自己到底在干什么
7.优惠券代码逆向生成
首先打开人人的代码,修改以下代码,可以自动生成
#\u4EE3\u7801\u751F\u6210\u5668\uFF0C\u914D\u7F6E\u4FE1\u606F
mainPath=com.huangskyking
#\u5305\u540D
package=com.huangskyking.grainmall
moduleName=product
#\u4F5C\u8005
author=huangskyking
#Email
email=huang@gmail.com
#\u8868\u524D\u7F00(\u7C7B\u540D\u4E0D\u4F1A\u5305\u542B\u8868\u524D\u7F00)
tablePrefix=sms_
#\u7C7B\u578B\u8F6C\u6362\uFF0C\u914D\u7F6E\u4FE1\u606F
tinyint=Integer
smallint=Integer
mediumint=Integer
int=Integer
integer=Integer
bigint=Long
float=Float
double=Double
decimal=BigDecimal
bit=Boolean
char=String
varchar=String
tinytext=String
text=String
mediumtext=String
longtext=String
date=Date
datetime=Date
timestamp=Date
NUMBER=Integer
INT=Integer
INTEGER=Integer
BINARY_INTEGER=Integer
LONG=String
FLOAT=Float
BINARY_FLOAT=Float
DOUBLE=Double
BINARY_DOUBLE=Double
DECIMAL=BigDecimal
CHAR=String
VARCHAR=String
VARCHAR2=String
NVARCHAR=String
NVARCHAR2=String
CLOB=String
BLOB=String
DATE=Date
DATETIME=Date
TIMESTAMP=Date
TIMESTAMP(6)=Date
int8=Long
int4=Integer
int2=Integer
numeric=BigDecimal
nvarchar=String
server:
port: 81
# mysql
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
#MySQL配置
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.80.20:3306/gulimall_sms?useSSL=false&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123456
#oracle配置
# driverClassName: oracle.jdbc.OracleDriver
# url: jdbc:oracle:thin:@47.100.206.162:1521:xe
# username: renren
# password: 123456
#SQLServer配置
# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
# url: jdbc:sqlserver://192.168.10.10:1433;DatabaseName=renren_fast
# username: sa
# password: 123456
#PostgreSQL配置
# driverClassName: org.postgresql.Driver
# url: jdbc:postgresql://192.168.10.10:5432/renren_fast
# username: postgres
# password: 123456
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
resources:
static-locations: classpath:/static/,classpath:/views/
#mongodb:
# host: localhost
# port: 27017
# auth: false #是否使用密码验证
# username: tincery
# password: renren
# source: 123456
# database: test
mybatis-plus:
mapperLocations: classpath:mapper/**/*.xml
pagehelper:
reasonable: true
supportMethodsArguments: true
params: count=countSql
#指定数据库,可选值有【mysql、oracle、sqlserver、postgresql、mongodb】
renren:
database: mysql
然后启动人人代码自动生成服务
下载里面的代码然后将里面的main代码放到coupon模块里,删除resource目录下的src目录
然后,添加pom.yml配置文件
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://192.168.80.20:3306/gulimall_sms
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
global-config:
db-config:
id-type: auto
测试一下,看能不能用
以上这些事情都是为了方便更快进行开发,因为基础的增删改查都已经模板化了,不需要我们自己再去写了