谷粒商城学习笔记(1.环境搭建)

一、项目简介

1、项目背景

1 电商模式

市面上有 5 种常见的电商模式 B2B、B2C、C2B、C2C、O2O;

1、B2B 模式

B2B (Business to Business), 是指商家与商家建立的商业关系。 如:阿里巴巴

2、B2C 模式

B2C (Business to Consumer), 就是我们经常看到的供应商直接把商品卖给用户,即“商对客” 模式,也就是通常说的商业零售,直接面向消费者销售产品和服务。如:苏宁易购、京东、天猫、小米商城

3、C2B 模式

C2B (Customer to Business),即消费者对企业。先有消费者需求产生而后有企业生产,即先有消费者提出需求,后有生产企业按需求组织生产

4、C2C 模式

C2C (Customer to Consumer) ,客户之间自己把东西放上网去卖,如:淘宝,闲鱼

5、O2O 模式

O2O 即 Online To Offline,也即将线下商务的机会与互联网结合在了一起,让互联网成为线下交易的前台。线上快速支付,线下优质服务。如:饿了么,美团,淘票票,京东到家

2 谷粒商城

谷粒商城是一个 B2C 模式的电商平台,销售自营商品给客户。

2、项目架构图

1 项目微服务架构图

在这里插入图片描述

2 微服务划分图

在这里插入图片描述

3、项目技术&特色

 前后分离开发,并开发基于 vue 的后台管理系统
 SpringCloud 全新的解决方案
 应用监控、限流、网关、熔断降级等分布式方案 全方位涉及
 透彻讲解分布式事务、分布式锁等分布式系统的难点
 分析高并发场景的编码方式,线程池,异步编排等使用
 压力测试与性能优化
 各种集群技术的区别以及使用
 CI/CD 使用
 …

4、项目前置要求学习项目的前置知识

 熟悉 SpringBoot 以及常见整合方案
 了解 SpringCloud
 熟悉 git,maven
 熟悉 linux,redis,docker 基本操作
 了解 html,css,js,vue
 熟练使用 idea 开发项目

二、环境搭建

1、安装 linux 虚拟机

下载&安装 VirtualBox https://www.virtualbox.org/,要开启 CPU 虚拟化

下载&安装 Vagrant
https://app.vagrantup.com/boxes/searchVagrant 官方镜像仓库
https://www.vagrantup.com/downloads.htmlVagrant 下载

1.打开 window cmd 窗口,运行 Vagrant init centos/7,即可初始化一个 centos7 系统

上面方法因为默认源 下载可能很慢 所有可以采取另一种方法下载centos

去官方virtualbox里面centos7的box下载:
https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
导入刚刚下载的镜像(box文件)

vagrant box add centos/7 ./vagrant-centos-7.box

初始化box

vagrant init

注意
此时,在你的目录下会自动生成Vagrantfile文件,修改Vagrantfile文件中的box名称。
config.vm.box = 的值 (vagrant-centos-7.box)是你下载的 box文件镜像名,要是全文件名
在这里插入图片描述
2.运行 vagrant up 即可启动虚拟机。系统 root 用户的密码是 vagrant
在这里插入图片描述
3.vagrant ssh:自动使用 vagrant 用户连接虚拟机。
在这里插入图片描述

https://www.vagrantup.com/docs/cli/init.html Vagrant 命令行
4. 默认虚拟机的 ip 地址不是固定 ip,开发不方便
修改 Vagrantfil

config.vm.network "private_network", ip: "192.168.56.10"

这里的 ip 需要在物理机下使用 ipconfig 命令找到
在这里插入图片描述
改为这个指定的子网地址
重新使用 vagrant up 启动机器即可。然后再 vagrant ssh 连接机器

2、安装 docker

Docker 安装文档:https://docs.docker.com/install/linux/docker-ce/centos/

1、卸载系统之前的 docker

sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

2、安装依赖软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-util 提供yum-config-manager
devicemapper 存储驱动程序需要依赖 device-mapper-persistent-data 和 lvm2
3、设置yum源

#官方源(慢)
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
#阿里源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#清华大学源
yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
已加载插件:fastestmirror, langpacks
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
[root@localhost ~]# 

4、安装最新版本的 Docker 和 containerd

#最新的docker社区版
yum install -y docker-ce docker-ce-cli containerd.io

5、启动 docker

sudo systemctl start docker

6、设置 docker 开机自启

sudo systemctl enable docker

7、配置 docker 镜像加速
依次复制运行下面的命令
在这里插入图片描述

3、docker 安装 mysql

1 下载镜像文件

docker pull mysql:5.7
下载完成后: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运行中的容器
在这里插入图片描述

3、创建实例并启动

vi my.cnf 创建文件
在这里插入图片描述

4、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-cl

三、开发环境统一

1、Maven

配置阿里云镜像(setting.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 安装开发必备插件(本人用webstorm)
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
在这里插入图片描述

3、GIT

自己本地学习开发不怎么用的到,所以也可以不用,我这里就懒得去搞这个了。

4、创建项目结构

在这里插入图片描述

5、数据库

导入相应的5个数据库
在这里插入图片描述
在这里插入图片描述

6、框架引入

用码云上的人人开源项目,搭建项目。
在这里插入图片描述
下载完后 前端直接拖入目录下
在这里插入图片描述
db目录下的mysql文件中的语句复制粘贴到mysql中,建立新用户表,导入表数据
在这里插入图片描述
在这里插入图片描述
前端直接打开,npm install运行下载依赖(没有node,下百度下载node环境)
在这里插入图片描述

四、快速开发(逆向工程)

1.代码生成器(生成增删改查方法)

下载人人代码生成,放到当前目录
在这里插入图片描述

修改数据库连接,以及导出的配置
在这里插入图片描述
template类下 是导出模板:可以修改controller中
在这里插入图片描述
注释掉!之后换
在这里插入图片描述
生成的main文件导入product下
在这里插入图片描述

2.添加配置类

将renrenfast下的一下必要配置类复制过来就行了
在这里插入图片描述
创建一个我们的gulimall-common配置类
在这里插入图片描述

3.整合mybatis和数据库连接

在这里插入图片描述
product下 创建application.yml配置文件
在这里插入图片描述

4.同种方式生成各模块各表的增删改查方法

五大模块
在这里插入图片描述

五、本章问题

1.2003错误

在这里插入图片描述

1. --privileged=true给容器权限

2.暂时不加-v挂载目录,若要加则保证目录下必须存在当前文件

# 启动容器	
docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql --privileged=true mysql:5.7
    
-d 后台运行
-p 端口映射  # 前面是当前宿主机端口,后面是docker容器端口
-v 卷挂载    # 前面是当前宿主机文件/文件夹位置,后面是docker容器文件/文件夹位置
              通过卷的挂载,使宿主机和docker中文件同步
-e 环境配置  # 安装启动mysql需要配置密码
--name 容器名字

3.给mysql用户权限

# master 表示容器中 mysql 的 name ,也可以使用容器 id
[root@localhost ~]# docker exec -it master bash
# 登录 mysql
root@bd15a018a99f:/# mysql -u root -p 
# 查看用户信息
mysql> select host,user,plugin,authentication_string from mysql.user;

# 123456 表示 mysql 登录密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 重新加载权限表
flush privileges;

4.关闭防火墙

# 3306 表示开放的端口号 --permanent 永久生效,没有此参数重启后失效
firewall-cmd --add-port=3306/tcp --permanent

# 重新载入
firewall-cmd --reload

# 关闭防火墙
systemctl stop firewalld
# 设置开机启动
systemctl enable iptables
# 重新载入
firewall-cmd --reload

# 启动 
systemctl start firewalld
# 关闭 
systemctl stop firewalld
# 查看状态
systemctl status firewalld
# 开机禁用
systemctl disable firewalld
# 开机启用 
systemctl enable firewalld

这些是网络总结的可行方法,我自己最后重装了两次系统都无法解决这个问题QAQ,最后只有放弃了,不用docker,或者用window上的mysql,redis毕竟主要是学习呜呜呜。有同学解决这个问题可以评论告诉下吗?!!!!!!

2.数据库注释乱码

不用导入sql文件那样导,数据库创建后,复制所有命令,在命令行里执行就不会注释乱码

3.npm install报错(node-sass与node版本不符合)

b站下面这个方法,我是成功且有效的。
在这里插入图片描述

4.maven依赖出问题

检查maven配置

在这里插入图片描述
重新下载
在这里插入图片描述

5.java版本问题(17版本问题)

创建模块是可能导致java版本过高(可能17之类的),单单该这里的version版本项目也无法正常运行。原因是下面自动导入的依赖也同样是高版本。
在这里插入图片描述
这是因为之前创建模块是没有选中spring boot的版本,spring boot为高版本,自动就会导入高版本的相关依赖

创建模块的此处,一定要选中低版本的springboot,解决相关问题
在这里插入图片描述

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值