谷粒商城基础篇笔记
边学边记笔记的,目前更新完前端基础篇,后边持续更新,
前端基础篇笔记,包括了ES6 vue elementUI
环境搭建
1. 安装visualBox虚拟机
下载地址visualBox下载地址
说明:visualBox进行安装需要cpu开启虚拟化,在开机启动的时候设置主板,CPU configuration,然后点击Intel Vitualization Technology。重启电脑
2.安装vagrant
下载地址https://www.vagrantup.com/
说明:vagrant可以帮助我们快速创建出一个虚拟机。他有一个镜像仓库。
安装完后需要重启系统
-
校验安装是否完成:cmd中输入vagrant有版本代表成功了。
-
初始化系统
vagrant init centos/7
vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box
国内源(在哪个目录下执行就安装在哪。) -
启动虚拟机:
vagrant up
第一次比较慢 -
当出现说明启动好了,然后Ctrl+c退出
-
连接虚拟机
vagrant ssh
-
查看当前用户
whoami
网络配置:
vagrant 使用的是网络地址转换和端口转发的方式,这种方式对于要访问virtualbox里面的软件(mysql3306 Redis6379)比较麻烦(需要先将里面的软件和Windows主机的端口进行绑定,然后需要访问virtualbox里面软件段楼的时候直接访问Windows的端口就行,这样的话virtualbox虚拟机里面每装一个软件,Windows都要有一个端口和他映射
)所以为了解决这个有如下方法:
方法一:修改虚拟机网卡信息(配置文件)
方法二:用于vagrant,修改Vagrantfile。
然后vagrant reload
重启虚拟机里看IP用ip addr
最后互相ping了试一下能否ping通
虚拟机装docker
Docker:虚拟化容器技术。Docker其于镜像(仓库https://registry.hub.docker.com/),可以秒级启动各种密器,每一种容器都是一个完整的运行环境,容器之间互相隔离
官网https://docs.docker.com/get-started/overview/
官网安装步骤https://docs.docker.com/engine/install/centos/依次按需求把命令CV到虚拟机OK
- 卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 设置存储库
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io
- 启动docker
sudo systemctl start docker
- 设置开机自动启动
sudo systemctl enable docker
docker 命令
1.检查当前虚拟机docker下载了那些镜像
sudo docker images
2.查看版本
docker - v
配置docker镜像仓库
https://0o4aevn3.mirror.aliyuncs.com
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://0o4aevn3.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
用docker安装mysql
1.安装
sudo docker pull mysql:5.7
如果每次要用管理员权限,太麻烦,可以直接用`su root`切换过去
2.创建mysql实例并启动
sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
–name指定容器名字 -v目录挂载 -p指定端口映射(linu前边的映射到docker) -e设置mysql参数 -d后台运行
#V:前面的目录是mysql(linux)里的,后面的是docker容器下的,后面挂载到前面
查看已启动的容器
[root@localhost vagrant]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7b79e12eba60 mysql:5.7 "docker-entrypoint.s…" 15 seconds ago Up 13 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
[root@localhost vagrant]#
3.进入容器内部
[root@localhost vagrant]# docker exec -it mysql /bin/bash // -it: 交互模式 mysql:一个ID,相当于名字
root@7b79e12eba60:/# ls
bin dev entrypoint.sh home lib64 mnt proc run srv tmp var
boot docker-entrypoint-initdb.d etc lib media opt root sbin sys usr
root@7b79e12eba60:/# whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysql
4.退出本目录,配置mysql配置文件
root@7b79e12eba60:~# exit
exit
[root@localhost vagrant]# cd /mydata/mysql/conf
[root@localhost conf]# ls
[root@localhost conf]# vi my.cnf
// cnf文件内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
5.重启mysql
[root@localhost conf]# docker restart mysql
6.可以去进docker查看映射成功没有(可忽略)
[root@localhost conf]# docker exec -it mysql /bin/bash
root@7b79e12eba60:/# ls
bin dev entrypoint.sh home lib64 mnt proc run srv tmp var
boot docker-entrypoint-initdb.d etc lib media opt root sbin sys usr
root@7b79e12eba60:/# cd /etc/mysql/
root@7b79e12eba60:/etc/mysql# ls
my.cnf
root@7b79e12eba60:/etc/mysql# cat my.cnf
[cliIent]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
root@7b79e12eba60:/etc/mysql#
安装Redis
如果直接挂载的话docker会以为挂载的是一个目录,所以我们先创建一个文件然后再挂载,在虚拟机中。
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker pull redis
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
62accaba5c0768381a08d527da46efb2ba084d4fc5e58f0816a248d43ae85ebf
[root@localhost vagrant]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
62accaba5c07 redis "docker-entrypoint.s…" 17 seconds ago Up 11 seconds 0.0.0.0:6379->6379/tcp redis
7b79e12eba60 mysql:5.7 "docker-entrypoint.s…" 13 hours ago Up 36 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
[root@localhost vagrant]#
连接Redis:docker exec -it redis redis-cli
[root@localhost vagrant]# cd /mydata/redis/conf/
[root@localhost conf]# ls
redis.conf
[root@localhost conf]# cat redis.conf
[root@localhost conf]# docker exec -it redis redis-cli
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> get a
"b"
127.0.0.1:6379> keys *
1) "a"
127.0.0.1:6379> exit
[root@localhost conf]#
配置持久化:Redis默认是不持久化的。在配置文件中输入appendonly yes,然后就可以aof
修改完配置重启
[root@localhost conf]# vi redis.conf
[root@localhost conf]# cat redis.conf
appendonly yes
[root@localhost conf]# docker restart redis
maven
配置jdk 镜像 存储位置
IntelliJ IDEA 插件
- Lombok
- mybatisx
vscode 和插件
- auto close
- auto rename tag
- eslint
- HTML CSS Support
- html snippets
- JavaScript (ES6) code snippets
- Live Server
- open in browser
- vetur
- Chinese
git
下载客户端,安装完成后,邮件桌面选择bash.
# 配置用户名
$ git config --global user.name "gulimall"
# 配置邮箱
$ git config --global user.email "[email protected]"
# 配置ssh免密登录
$ ssh-keygen -t rsa -C "[email protected]"
# 三次回车后生成密匙
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/LZL/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/LZL/.ssh/id_rsa
Your public key has been saved in /c/Users/LZL/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:nyHinOCddruKLvmiF9VFwTV+doq2jIxGqZkMiiQs61k zhilinuse@163.com
The key's randomart image is:
+---[RSA 3072]----+
| oooo |
| o. . |
| . . . o . |
|. . .. + o |
|oo... + S + . |
|=o.+ X * * + |
|+ E* X + = |
|. B + . . |
|.= =+ ..o. |
+----[SHA256]-----+
# 查看密匙
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDfVDsZTRh92lK62eU0meNJyPQD5wZf5DD5JqpHxgrCXAoUtx/T70iPFuRch7h0ItFEIOzauFf80VoNMWrjndy9Whh5Au3r4Ie4l4Kxnj2eF3jsRTUyOzOd7tqlLayqpvGhiH3umsCRiwFXFlug2D2q903InE3KbzLeuFNyO2zmpls8GRpx67b7LeqnKO/V06egfdbaMPvxyym3S7gvs6PoDpbrN+5skBuPeUzZg5J+DlxNiLnbEZ4HJyPPeVz3+X2BijnQBdgTC9OQBDbMvO8iaACCbBUuFdUwhHYPTkIQzFK5GVbIYaTJtk8vc2W1OUdt1+vdLcNBXRhDQZMc+sUz1R38DRWuvqCseUtjSUCwVlCgY3OgoCHWTx8+WtnMUF16gth2vWCwP+ZaM+yIY/95WQw8/czM8wMaiujT5N9cSUCQ+u6Hmd7UUfpU01dXc3/V6IH80R5VBdJE+16UQI+sWQE4ZFIIFygdiLFfZxCrYAvbCnPEzOzr+FMcSOShxvM= [email protected]
# 然后登录码云,点击头像,个人设置,ssh公匙,输入标题,把刚刚才生成的粘贴上来,点击确定
# 测试
$ ssh -T [email protected]
The authenticity of host 'gitee.com (180.97.125.228)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'gitee.com,180.97.125.228' (ECDSA) to the list of known hosts.
Hi lzl! You've successfully authenticated, but GITEE.COM does not provide shell access.
码云
新建仓库
复制项目地址,然后新建项目,把地址粘贴上去,然后克隆完成
创建module
项目右键>new>module>spring lnitializr>
group(com.atguigu.gulimall)>Artifack(gulimall-product)>description(谷粒商城-商品服务>package(com.atguigu.gulimall.product)>Web (spring web)>
spring cloud routing(openFeign)
依次创建下面服务
- 商品服务product
- 存储服务ware
- 订单服务order
- 优惠券(营销)服务coupon
- 用户服务member
共同点 :导入web和openfeign
group:com.atbili.gulimall
Artifact:gulimall-XXX
每一个服务,包名 com.atbili.gulimall.XXX{product/order/ware/coupon/member}
模块名:gulimall-XXX
然后右下角显示了springboot的service选项,选择他
从某个项目粘贴个pom.xml粘贴到项目目录,修改他
<?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.atbili.gulimall</groupId>
<artifactId>gulimall</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>gulimall</name>
<description>聚合服务</description>
<packaging>pom</packaging>
<modules>
<module>gulimall-coupon</module>
<module>gulimall-member</module>
<module>gulimall-order</module>
<module>gulimall-ware</module>
<module>gulimall-product</module>