本项目是基于尚硅谷教程**2020微服务分布式电商项目《谷粒商城》**设计,感谢尚硅谷的用爱发电,视频链接
本次实习使用的是centos7系统,阿里云服务器,这里不得不提良心阿里云服务让学生可以免费白嫖,白嫖教程地址:https://blog.csdn.net/qq_41522089/article/details/107044432
1、检查内核版本,必须是3.10及以上
uname -r
2、安装docker
yum install docker
3、输入y确认安装4、启动docker
systemctl start docker
docker -v #确认docker版本
5、开机启动docker
systemctl enable docker
6、停止docker
systemctl stop docker
如果使用的是阿里云服务器,可以使用镜像容器加速服务,加速内容具体可以看我的博客第六章第一小节
docker pull mysql:5.7
这里推荐使用方式2,启动挂载,方便直接在linux目录下看到配置,日记等,不需要进入容器
#方式1
docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql #将容器端口3306映射到本机3306端口
#方式2
docker run -p 3306:3306 --name mysql \ #将容器端口3306映射到本机3306端口
-v /mydata/mysql/log:/var/log/mysql \ #将mysql容器的日记信息挂载到/mydata/mysql/log下
-v /mydata/mysql/data:/var/lib/mysql \ #将mysql容器的数据储存挂载到/mydata/mysql/data下
-v /mydata/mysql/conf:/etc/mysql \ #将Mysql容器的配置信息挂载到/mydata/mysql/conf下
-e MYSQL_ROOT_PASSWORD=root \ #将密码设置为root
-d mysql:5.7 #后台运行Mysql,版本号是5.7
进入conf目录创建配置:vi 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 安装的mysql,如果直接输入mysql指令,会报错: -bash: mysql: command not found
正确方式应该是执行docker容器的mysql
docker exec -it mysql01 /bin/bash #这里的mysql01是你容器中设置的mysql的名字
这时候可以使用mysql指令了,然后输入用户名密码
mysql -u root -p #进入数据库
docker pull redis
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
执行redis-cli连接redis
docker exec -it redis redis-cli
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> get a
"b"
vi /mydata/redis/conf/redis.conf
#将持久化配置加入
appendonly yes
#重启redis
docker restart redis
在conf/setting.xml配置
<mirror>
<id>nexus-aliyunid>
<mirrorOf>*mirrorOf>
<name>Nexus aliyunname>
<url>http://maven.aliyun.com/nexus/content/groups/publicurl>
mirror>
<profile>
<id>jdk18id>
<activation>
<activeByDefault>trueactiveByDefault>
<jdk>1.8jdk>
activation>
<properties>
<maven.compiler.source>1.8maven.compiler.source>
<maven.compiler.target>1.8maven.compiler.target>
<maven.compiler.compilerVersion>1.8maven.compiler.compilerVersion>
properties>
profile>
在Idea设置默认使用本地的maven
lombok和mybatisx
安装vscode
$ git config --global user.name "xiaoxiao"
$ git config --global user.email "[email protected]"
这个email要和码云绑定的一致
$ ssh-keygen -t rsa -C "[email protected]"
#连续输入三次enter键,就可以激活成功,将秘钥粘贴到码云官网,激活秘钥
$ cat ~/.ssh/id_rsa.pub #查看秘钥
$ ssh -T [email protected] #绑定秘钥,输入yes,成功
将码云上的项目clone到本地
使用Spring initializr 创建SpringBoot项目
如果IDEA使用Spring initializr 创建SpringBoot项目超时,可以使用阿里云的定制初始模板
每个模块都初始化导入web,openfeign依赖
建立五个子模块
商品服务 gulimall-product
仓储服务 gulimall-ware
订单服务 gulimall-order
优惠券服务 gulimall-coupon
用户服务 gulimall-member
<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.0modelVersion>
<groupId>com.xiaoxiao.gulimallgroupId>
<artifactId>gulimallartifactId>
<version>0.0.1-SNAPSHOTversion>
<name>gulimallname>
<description>聚合服务description>
<packaging>pompackaging>
<modules>
<module>gulimall-couponmodule>
<module>gulimall-membermodule>
<module>gulimall-ordermodule>
<module>gulimall-productmodule>
<module>gulimall-waremodule>
modules>
project>
增加文件git忽略
**/mvnw
**/mvnw.cmd
**/.mvn
**/target/
.idea
**/.gitignore
首先使用SQLyoung连接阿里云的mysql数据库
建表sql太长了不粘了,在https://shimo.im/docs/Dv6w8KcWJpXvvPkD/read自取
使用码云git clone开源项目-人人开源,链接
$ git clone https://gitee.com/renrenio/renren-fast.git
$ git clone https://gitee.com/renrenio/renren-fast-vue.git
修改数据库信息
#自己mysql的设置
url: jdbc:mysql://你的ip/gulimall_admin?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: root
新建两个文件夹node_cache,node_global
输入指令
npm config set prefix "D:\Develop\nodejs\node_global"
npm config set cache "D:\Develop\nodejs\node_cache"
切换到淘宝镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
进入vs code的控制台
输入指令:npm install
npm run dev
1.前台工作时,后台要打开
2.如果出现error:node-sass4.9.0安装失败,先卸载原来安装的node-sass,然后重新安装
npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
之后再执行:npm install
最后启动
设计一个子模块,将共用的一些依赖,bean,工具等放入这个包,只要引用就可以了
<dependencies>
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-boot-starterartifactId>
<version>3.2.0version>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<version>1.18.8version>
dependency>
<dependency>
<groupId>org.apache.httpcomponentsgroupId>
<artifactId>httpcoreartifactId>
<version>4.4.12version>
dependency>
<dependency>
<groupId>commons-langgroupId>
<artifactId>commons-langartifactId>
<version>2.6version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.17version>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>servlet-apiartifactId>
<version>2.5version>
<scope>providedscope>
dependency>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>
<dependency>
<groupId>javax.validationgroupId>
<artifactId>validation-apiartifactId>
<version>2.0.1.Finalversion>
dependency>
dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-alibaba-dependenciesartifactId>
<version>2.1.0.RELEASEversion>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
共用Bean在逆向搭建工程时候粘贴进去就行
这里也是使用人人开源的renren-generator,可在线生成entity、xml、dao、service、vue、sql代码
git clone https://gitee.com/renrenio/renren-generator.git
要使用哪个数据库就用哪个配置
# mysql
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
#MySQL配置
driverClassName: com.mysql.cj.jdbc.Driver
#这里使用gulimall_pms库
url: jdbc:mysql://你的ip/gulimall_pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: root
#代码生成器,配置信息
mainPath=com.xiaoxiao
#包名
package=com.xiaoxiao.gulimall
moduleName=product
#作者
author=xiaoxiao
#Email
[email protected]
#表前缀(类名不会包含表前缀)
tablePrefix=pms_
访问localhost:80
#配置mybatis plus
spring:
datasource:
username: root
password: root
url: jdbc:mysql://101.201.237.107/gulimall_pms
driver-class-name: com.mysql.jdbc.Driver
@MapperScan("com.xiaoxiao.gulimall.product.dao") //配置在主方法上
在application.yml配置
#配置映射位置
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
#配置映射位置
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
global-config:
db-config:
id-type: auto
方法和第五章一样,不赘述