小帽商城 II
第二章 环境搭建
一、安装 Linux 虚拟机
1. 下载&安装 VirtualBox
- https://www.virtualbox.org/,要开启 CPU 虚拟化
2. 下载&安装 Vagrant
- https://app.vagrantup.com/boxes/search Vagrant 官方镜像仓库
- https://www.vagrantup.com/downloads.html Vagrant 下载
3. 运行 Vagrant
- 打开 window cmd 窗口,运行 Vagrant init centos/7,即可初始化一个 centos7 系统
- 运行 vagrant up 即可启动虚拟机。系统 root 用户的密码是 vagrant
4. vagrant 其他常用命令
- vagrant ssh:自动使用 vagrant 用户连接虚拟机。
- vagrant upload source [destination] [name|id]:上传文件
- Vagrant 命令行
- https://www.vagrantup.com/docs/cli/init.html
5. 默认虚拟机的 ip 地址不是固定 ip,开发不方便
- 修改 Vagrantfile
- config.vm.network “private_network”, ip: “192.168.56.10”
- 这里的 ip 需要在物理机下使用 ipconfig 命令找到
- 改为这个指定的子网地址
- 重新使用 vagrant up 启动机器即可。然后再 vagrant ssh 连接机器
二、安装 docker
- 虚拟化容器技术。Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行环境,容器之间互相隔离。
1. 卸载系统之前的 docke
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
每日登录命令
1.打开Oracle VM VirtualBox 管理器,选择虚拟机右键:无界面启动
(或者 vagrant up 启动虚拟机)
<!-- 看到 Rsyncing folder: /cygdrive/c/Users/sgsgk/MyVagrantSyncFolder/ => /vagrant 为成功-->
2.控制台 vagrant ssh 连接虚拟机
三、docker 安装 mysql
1. 下载镜像文件
sudo docker pull mysql:5.7
# 查看所有镜像 sudo docker images
2. 创建实例并启动
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
# 参数说明
# -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
# -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
# -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
# -v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
# -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
# 查看正在运行的容器 docker ps
# 访问容器内部 docker exec -it mysql /bin/bash
# 检查mysql装在哪个位置 whereis mysql
# 重启mysql容器 docker restart mysql
- MySQL容器是一个完整的Linux
- MySQL 配置
vi /mydata/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
- skip-name-resolve: 跳过域名解析
四、docker 安装 redis
1. 下载镜像文件
docker pull redis
2. 创建实例并启动
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
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
3. 使用 redis 镜像执行 redis-cli 命令连接
docker exec -it redis redis-cli
五、开发环境统一
1. Maven
# 配置阿里云镜像
<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
3.1 下载 git
- https://git-scm.co
3.2 配置 git,进入 git bash
# 配置用户名
git config --global user.name "username" //(名字)
# 配置邮箱
git config --global user.email "username@email.com" //(注册账号时用的邮箱)
3.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 测试是否成功即可
六、创建项目微服务
- 商品服务、仓储服务、订单服务、优惠券服务、用户服务
- 共同:
- web、openfeign
- 每一个服务,包名 com.lin.citronmall.xxx(product/order/ware/coupon/member)
- 模块名:citronmall-coupon
1. 从 gitee 初始化一个项目
2. 创建各个微服务项目
- 了解人人开源项目,快速搭建后台脚手架
- 修改代码调整为我们的业务逻辑
- 创建各个微服务以及数据库
- 数据库资源详见【资料】小帽商城 II(一)
# .gitignore
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
.mvn/wrapper/maven-wrapper.jar
**/mvnw
**/mvnw.cmd
**/.mvn
**/target/
.idea
**/.gitignore
# 虚拟机重启后服务都会重新启动
sudo docker update redis --restart=always
sudo docker update mysql --restart=always
七、人人开源
1. 码云下载
- 在码云上搜索人人开源,下载 renren-fast 和 renren-fast-vue
- 将 renren-fast 文件夹拷贝至项目 citronmall 中
- renren-fast 中 db 下有mysql.sql,新建数据库citronmall_admin后,将其复制到数据库中运行
- 修改 application-dev.yml 数据库连接部分
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.56.10:3306/citronmall_admin?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: root
2. 前端
- 将 renren-fast-vue 拖进 vscode 中
3. 安装 node.js
-
前端开发,少不了 node.js;
-
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
-
http://nodejs.cn/api/
-
我们关注与 node.js 的 npm 功能就行;
-
NPM 是随同 NodeJS 一起安装的包管理工具,JavaScript-NPM,Java-Maven;
- 官网下载安装 node.js,并使用 node -v 检查版本
node -v v10.16.3
- 配置 npm 使用淘宝镜像
- npm config set registry http://registry.npm.taobao.org/
- 如果 npm install 安装依赖出现 chromedriver 之类问题,先在项目里运行下面命令 npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver
- 然后再运行 npm install
4. 运行前端项目
- vscode中
- npm install
- 此处若安装不了,需设置权限(管理员身份打开cmd)
- 输入set-ExecutionPolicy RemoteSigned 选择A
- npm run dev
- 输入账号密码admin,进入后台管理系统
5. 代码生成器
- 将 renren-generator 拷贝至项目 citronmall 中
- pom文件添加
<modules>
<module>citronmall-coupon</module>
<module>citronmall-member</module>
<module>citronmall-order</module>
<module>citronmall-product</module>
<module>citronmall-ware</module>
<module>renren-fast</module>
<module>renren-generator</module>
</modules>
<!-- generator.properties -->
#\u5305\u540D
package=com.lin.citronmall
moduleName=product
#\u4F5C\u8005
author=alex
#Email
email=alex@gmail.com
#\u8868\u524D\u7F00(\u7C7B\u540D\u4E0D\u4F1A\u5305\u542B\u8868\u524D\u7F00)
tablePrefix=pms_
<!-- application.yml -->
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
#MySQL配置
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.56.10:3306/citronmall_pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: root
6. 创建 citronmall-common 模块
<!-- pom.xml -->
<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>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.12</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
</dependencies>