- 学习环境搭建
- (1)安装VirtualBox
- (2)安装vagrant来为VirtualBox安装镜像
- (3)安装docker
- (4)使用docker安装MYSQL
- (5)使用docker安装redis
- (6)统一开发环境
- (6)在码云上创建一个仓库并导入到IDEA当中
- (7)初始化项目工程
- (8)初始化数据库,每个模块都使用单独的数据库
- (9)在码云上找到人人开源,拷贝如下2个项目作为本商城的(后台管理前台跟后台)
- (10)在人人开源中下载逆向开源的项目,完成对代码的生成
- (11)nacos配置中心的常见概念
- (12)需要了解的前端基础知识
- 项目中的springcloud、springboot、springcloudalibaba版本
学习环境搭建
(1)安装VirtualBox
- 开启CPU的虚拟化
- 下载VirtualBox,下载地址:https://www.virtualbox.org/wiki/Downloads
- 下载完成后,一路安装即可
(2)安装vagrant来为VirtualBox安装镜像
- https://app.vagrantup.com/boxes/search Vagrant 官方镜像仓库
- https://www.vagrantup.com/downloads.html Vagrant 下载
vagrant的常用命令(执行了init之后的命令所在的文件夹必须有Vagrantfile)
- 运行
vagrant init centos/7
,即可初始化一个 centos7 系统(在哪个目录执行,就会在哪个目录创建一个Vagarntfile文件) - 担心下载慢就:
vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box
- 运行
vagrant up
即可启动虚拟机。系统 root 用户的密码是vagrant
,还会自动生成一个vagrant用户 vagrant ssh
自动使用vagrant用户连接虚拟机vagrant upload source [destination] [name|id]
:上传文件
使用vagrant下载太慢的,可以在官方镜像仓库中先下载好镜像,然后执行如下命令
vagrant box add centos/7 D:\a_dev_software\mall\vagrnt_centos\CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box
注意命令还是要在使用了vagrant init生成的Vagrantfile目录中使用
vagrant up
修改通过VirtuleBox修改Linux系统,不使用端口转发,给虚拟机一个默认地址(2种办法)
- 修改Vagrantfile,设置ip地址为VirtualBox虚拟网卡所在地址的网段。
- 例如我通过ipconfig查看到了VirtualBox的ip为 192.168.51.1 那么我配置ip地址时,只需要跟他在同一个网段就好
- 例如:
config.vm.network "private_network", ip: "192.168.56.10"
- 重启centos
vagrant reload
(3)安装docker
卸载Docker(可选)
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
安装yum-utils工具(安装前最好配置一下yum的下载镜像)
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,并且关闭Linux防火墙、配置镜像加速器
yum install -y docker-ce
关闭
systemctl stop firewalld
禁止开机启动防火墙
systemctl disable firewalld
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'eof' { "registry-mirrors": ["https: 01h7qfqd.mirror.aliyuncs.com"] } eof sudo systemctl daemon-reload restart docker < code></-'eof'>
(4)使用docker安装MYSQL
- 拉取mysql镜像
docker pull mysql:5.7
- 创建实例并启动
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
- 修改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
- 进入容器内部,开启远程连接
docker exec -it mysql mysql -uroot -proot
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
- 重启该容器即可
docker restart mysql
- 如果想要进入容器系统内部,执行如下命令
docker exec -it mysql /bin/bash
进入MYSQL交互界面后,可以通过如下命令查看含有mysql目录的文件地址
whereis mysql
(5)使用docker安装redis
- 拉取redis镜像
docker pull redis
- 创建文件夹与文件(不然直接挂载redis.conf会变成一个目录)
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
- 修改配置文件,开启aof持久化
vi /mydata/redis/conf/redis.conf
- 添加一行
是否开启AOF功能
appendonly yes
docker修改已经创建的容器参数
docker update redis –restart=always
(6)统一开发环境
Maven使用3.6.1
<mirror>
<id>nexus-aliyun</id>
<mirrorof>central</mirrorof>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://central.maven.org/maven2</url>
<mirrorof>central</mirrorof>
</mirror>
<mirror>
<id>junit</id>
<name>junit Address/</name>
<url>http://jcenter.bintray.com/</url>
<mirrorof>central</mirrorof>
</mirror>
- 配置编译版本
<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>
配置IDEA开发环境
- 配置好Maven地址、配置文件、仓库地址
- 安装2个插件( lombok、 mybatisx、Alibaba Java Coding Guidelines、AiXcoder、Codota AI)
配置好VSCode
- 安装如下插件
安装配置git
- 下载 git:https://git-scm.com
- 配置 git,进入 git bash
配置用户名
git config --global user.name "codestars" //(名字)
配置邮箱
git config --global user.email "codestars@163.com"
执行如下命令。 连续三次回车。
ssh-keygen -t rsa -C "codestars@163.com"
查询公钥
cat ~/.ssh/id_rsa.pub
登录进入 gitee,在设置里面找到 SSH KEY 将.pub 文件的内
#测试是否成功
ssh -T git@gitee.com
(6)在码云上创建一个仓库并导入到IDEA当中
- 创建仓库
- 使用IDEA导入已经创建的仓库,并创建相对应的模块
(7)初始化项目工程
创建项目微服务
- 初始化微服务一共有:
product
商品服务order
订单服务ware
仓储服务coupon
优惠券服务member
用户会员服务- 统一的模块名为 :
gulimall-product
- 统一的组织名:
com.codestars.gulimall
- 统一需要先引入的模块:
web、openfeign
- 统一的包格式为:
com.codestars.gulimall.product | com.codestars.gulimall.order
等
进行模块的聚合
- 随便复制一个模块中的pom到父工程的第一层目录下
- 将主工程添加到maven当中
修改主工程中的.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
https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
**/mvnw
**/mvnw.cmd
**/.mvn
**/target/
.idea
**/.gitignore
将所有的文件都添加到暂存区并提交,再push到码云
(8)初始化数据库,每个模块都使用单独的数据库
- 创建如下
CREATE DATABASE gulimall_oms
/*!40100 DEFAULT CHARACTER SET utf8mb4 */
CREATE DATABASE gulimall_pms
/*!40100 DEFAULT CHARACTER SET utf8mb4 */
CREATE DATABASE gulimall_sms
/*!40100 DEFAULT CHARACTER SET utf8mb4 */
CREATE DATABASE gulimall_ums
/*!40100 DEFAULT CHARACTER SET utf8mb4 */
CREATE DATABASE gulimall_wms
/*!40100 DEFAULT CHARACTER SET utf8mb4 */
- 为每个数据库都添加对应的表
(9)在码云上找到人人开源,拷贝如下2个项目作为本商城的(后台管理前台跟后台)
- 克隆下来之后,把其中的.git文件夹都删了
在gulimall项目中引入renren-fast并进行数据库等配置
- 将renren-fast项目放入到我们的项目当中
- 在父工程中添加该模块
<module>renren-fast</module>
- 在maven设置中将其引入
- 找到该项目下的db文件夹,找到mysql.sql文件,将其复制一份,更名为gulimall_admin.sql
- 创建一个数据库,叫做
gulimall-admin
,在该数据库中执行gulimall_admin.sql文件
CREATE DATABASE gulimall_admin
/*!40100 DEFAULT CHARACTER SET utf8mb4 */
- 查看renren-fast项目的applicaiton.yml文件,发现激活的是dev开发环境,因此找到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/gulimall_admin?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: root
- 直接运行该项目,如果出现报错就使用maven来clean一下,运行后访问如下网址,如果能访问到,代表项目启动成功
http://localhost:8080/renren-fast/
使用vscode打开renren-fast-vue项目进行配置后运行
- 下载安装node.js,下载安装后配置淘宝镜像
npm config set registry https://registry.npm.taobao.org
- 在该项目下打开命令行,输入
npm install
- 将项目运行起来:
npm run dev
,运行时候发现提示webpack-dev-server不是内部或外部命令,也不是可运行的程序 - 因此安装一下该命令
npm install webpack-dev-server --save-dev
- 再次输入:
npm run dev
运行前端项目renren-fast-vue
(10)在人人开源中下载逆向开源的项目,完成对代码的生成
- 在码云中找到人人开源中的代码生成项目克隆下来
- 将其拷贝到gulimall项目下
- 在父工程中将其引入
<module>renren-generator</module>
- 在maven中将其加入
- 修改其配置文件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/gulimall_sms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: root
- 修改配置文件generator.properties
主路径
mainPath=com.codestars
生成的包
package=com.codestars.gulimall
模块名称
moduleName=coupon
表前缀
tablePrefix=sms_
- 修改Controller中的模板,将shiro有关的注释掉
## import org.apache.shiro.authz.annotation.RequiresPermissions;
## @RequiresPermissions("${moduleName}:${pathName}:list")
- 直接运行该项目,访问:
localhost:80
- 依次生成5个模块都需要的代码,并将其放到对应模块当中
将生成的代码放入对应模块后创建gulimall-common普通maven模块来引用一些共同需要的依赖
- 创建一个普通maven项目
- 修改所有子模块中的pom文件,将公共依赖引入
<dependency>
<groupid>com.codestars.gulimall</groupid>
<artifactid>gulimall-common</artifactid>
<version>0.0.1-SNAPSHOT</version>
</dependency>
- 引入Controller中一些公共的依赖,这些依赖的包都可以在renren-generator中找到
例如该依赖在Controller中没有:import com.codestars.common.utils.R
- 在gulimall-common模块中创建该目录,然后将renren-fast中的对应类引入
- 引入后如果出现一些依赖没有,可以添加依赖,或者将renren-fast中的代码都引入过来
- 启动项目时,如果出现了
Module was compiled with an incompatible version of Kotlin. The binary version of its
错误,那么就使用idea面板中的 build-> rebuild project解决
(11)nacos配置中心的常见概念
- 命名空间:用于隔离不同微服务之间的配置文件
- 配置集:类似于所有配置文件的集合
- 配置ID:类似于文件名
- 配置分组: 默认所有的配置集都属于DEFAULT_GROUP(相当于更细粒度的划分)
通过只配置bootstrap.properties来指定配置中心,其他配置可以都不写在项目中
配置中心的最佳实践
- 每个微服务都有属于自己的命名空间
- 在每个命名空间下都创建3个分组,分别为: dev、test、prod
- 而后在每个微服务中,需要配置声明自己所在的命名空间,并且需要指定分组。
(12)需要了解的前端基础知识
- 主要讲解ES6的一些语法
let和const声明变量
数组解构和对象结垢
字符串的4个新API以及字符串模板
函数参数默认值、不定参数、箭头函数
新增的对象API,声明对象简写、对象的函数属性简写、对象的扩展运算符
map、reduce
Promise、模块化
项目中的springcloud、springboot、springcloudalibaba版本
<spring-cloud.version>Hoxton.SR9</spring-cloud.version>
<spring-cloud.alibaba.version>2.2.3.RELEASE</spring-cloud.alibaba.version>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
Original: https://www.cnblogs.com/itdqx/p/16722254.html
Author: code_Stars
Title: 谷粒商城-第一天(环境搭建)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/594000/
转载文章受原作者版权保护。转载请注明原作者出处!