✅P06-15_环境搭建
安装Linux虚拟机
下载&安装 Vagrant
- Vagrant 官方镜像仓库:https://app.vagrantup.com/boxes/search
- Vagrant 下载:https://www.vagrantup.com/downloads.html
打开 window cmd 窗口, 运行 Vagrant init centos/7
命令, 即可初始化一个 centos7 系统。可以看到C盘用户文件夹下生成Vagrantfile文件。
运行 vagrant up
即可启动虚拟机。报错:
解决办法,执行以下命令:
git config --global http.schannelCheckRevoke false
继续执行vagrant up
命令,报错:
解决:
git config --global --unset http.proxy
解决:
git config --global http.sslBackend "openssl"
再次执行vagrant up
,成功。
vagrant 其他常用命令
vagrant ssh: 自动使用 vagrant 用户连接虚拟机。
vagrant upload source [destination] [name|id]: 上传文件
Vagrant 命令行默认虚拟机的 ip 地址不是固定 ip, 开发不方便 ,将Vagrantfile文件中的ip地址放开。位置:C盘用户文件夹下生成Vagrantfile文件。注意:必须和#对齐。
ip具体设定的值参考如下:
修改后在命令窗口重启vagrant,命令 :vagrant reload。必须用命令执行,在VirtualBox中重启虚拟机的操作将不会使ip生效。巨坑,别踩了。
重启后验证网络配置:
-- Windows环境ping虚拟机
ping 虚拟机配置的ip
-- 虚拟机环境ping"Windows"的ip
ping Windows环境ip
用Navicat测试连接虚拟机的mysql。主机ip地址就是设置的 192.168.56.10
。密码是自己设置的root。
安装 docker
Docker 安装文档: https://docs.docker.com/engine/install/centos/
1、卸载系统之前的 docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、安装 Docker-CE
-- 安装必须的依赖
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
-- 设置 docker repo 的 yum 位置
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
-- 安装 docker, 以及 docker-cli
sudo yum install docker-ce docker-ce-cli containerd.io
3、启动 docker
sudo systemctl start docker
4、设置 docker 开机自启
sudo systemctl enable docker
5、测试 docker 常用命令, 注意切换到 root 用户下
https://docs.docker.com/engine/reference/commandline/docker/
6、配置 docker 镜像加速
阿里云, 容器镜像服务针对 Docker 客户端版本大于 1.10.0 的用户,您可以通过修改 daemon 配置文件/etc/docker/daemon.json
来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker 安装 mysql
1、下载镜像文件
docker pull mysql:5.7
2、创建实例并启动 (root用户下执行)
docker run -d -p 3308:3306 --name mysql_mall -v /home/cfmall/mysql/conf:/etc/mysql/conf.d -v /home/cfmall/mysql/data:/var/lib/mysql -v /home/cfmall/mysql/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
参数说明
-p 3308:3306: 将容器的 3308 端口映射到主机的 3306 端口
-v /home/cfmall/mysql/conf:/etc/mysql/conf.d: 将配置文件夹挂载到主机
-v /home/cfmall/mysql/log:/var/log/mysql/: 将日志文件夹挂载到主机
-v /home/cfmall/mysql/data:/var/lib/mysql/: 将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=123456: 初始化 root 用户的密码
MySQL 配置:vi /home/cfmall/mysql/conf/my.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
注意: 解决 MySQL 连接慢的问题,在配置文件中加入如下内容:
[mysqld] skip-name-resolve
并重启 mysql。
skip-name-resolve
: 跳过域名解析 !
3、 通过容器的 mysql 命令行工具连接
docker exec -it mysql mysql -uroot -proot
4、设置 root 远程访问(没用到)
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
5、进入容器文件系统
docker exec -it mysql /bin/bash
6、开机自启动
docker update 容器id/容器名字 --restart=always
docker 安装 redis
1、下载镜像文件
docker pull redis
2、创建实例并启动
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker run -p 6380:6379 --name redis_mall \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
redis 自描述文件:https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf
同时开启持久化,在redis.conf文件加入内容:appendonly yes
,默认开启AOF模式;
3、使用 redis 镜像执行 redis-cli 命令连接
docker exec -it redis redis-cli
4、验证持久化
--在cli下:
set a b
-- 重启redis
docker restart redis
-- get a 查看是否还有b值
开发环境统一
1、 Maven
在maven的conf配置文件夹下的settings.xml
文件中配置阿里云镜像
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
配置 jdk1.8 编译项目:
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
2、 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 —— 中文语言包
3、 安装配置 git
1、 下载 git; https://git-scm.com
2、 配置 git, 进入 git bash
# 配置用户名
git config --global user.name "username" //(名字)
# 配置邮箱
git config --global user.email "username@email.com" //(注册账号时用的邮箱)
3、 配置 ssh 免密登录
- https://gitee.com/help/articles/4181#article-header0
- 进入 git bash; 使用: ssh-keygen -t rsa -C "xxxxx@xxxxx.com"命令。 连续三次回车。 一般用户目录下会有
- 或者 cat ~/.ssh/id_rsa.pub 登录进入 gitee, 在设置里面找到 SSH KEY 将.pub 文件的内容粘贴进去 使用 ssh -T git@gitee.com 测试是否成功即可
- Git+码云教程 https://gitee.com/help/articles/4104
创建微服务项目
商品服务、 仓储服务、 订单服务、 优惠券服务、 用户服务 。
模块名
- cfmall-product:商品服务
- cfmall-ware:仓储服务
- cfmall-order:订单服务
- cfmall-coupon:优惠券服务
- cfmall-member: 用户服务
IDEA创建项目
使用spring Initializr创建商品服务、订单服务、会员服务、仓储服务、优惠券服务
下一步:
- 勾选
Spring Web
依赖:微服务项目都需要web依赖,整合springmvc和内嵌servlet; - 勾选
OpenFeign
依赖:服务与服务之间的调用;
父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.gyz.cfmall</groupId>
<artifactId>cfmall</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>cfmall</name>
<description>聚合服务</description>
<packaging>pom</packaging>
<modules>
<module>cfmall-order</module>
<module>cfmall-product</module>
<module>cfmall-ware</module>
<module>cfmall-coupon</module>
<module>cfmall-member</module>
</modules>
</project>
目录结构
下面多余得模块是后来创建得,此图为后续补充。
数据库初始化
在课程资源中找到sql脚本执行;