项目特点
- 前后端分离。前端Vue,后端springclioud微服务。restful请求
- CI/CD,k8s一站式发布、运维
- 商品 支付 优惠 用户 仓储 秒杀 订单 检索 认证 购物车 后台 第三方服务 物流 短信 金融 身份认证
环境搭建
MySQL
docker run -p 23306:3306 --name mysqlGrain \
-v /var/grainmall/docker/mysql57/mysqlGrain/conf:/etc/mysql \
-v /var/grainmall/docker/mysql57/mysqlGrain/logs:/var/log/mysql \
-v /var/grainmall/docker/mysql57/mysqlGrain/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
设置默认编码
cd /var/grainmall/docker/mysql57/mysqlGrain/conf
vi vi my.cnf
写入
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
验证
show variables like '%char%';
/*
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8
character_set_filesystem binary
character_set_results utf8mb4
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets
*/
redis
先创建 redis.conf 文件,以免 docker 挂载时将其认为是目录
mkdir -p /var/grainmall/docker/redis5/redisGrain/conf
touch /var/grainmall/docker/redis5/redisGrain/conf/redis.conf
运行
docker run -p 26379:6379 --name redisGrain \
-v /var/grainmall/docker/redis5/redisGrain/data:/data \
-v /var/grainmall/docker/redis5/redisGrain/conf/redis.conf:/etc/redis/redis.conf \
-d redis:5 redis-server /etc/redis/redis.conf
配置持久化
vi redis.conf
插入
appendonly yes
重启容器
docker restart redisGrain
其他环境
- JDK 1.8
- ideaJ 后端开发
- vscode 前端开发
vscode 插件
auto close tag
auto renaming tag
chinese
eslint
html css support
html snippets
javascript(es6)
live server
open in broser
veter
- node.js
初始化后端项目
- 新建仓库 https://github.com/madokast/grainmall2020
- ideaJ new project from version control
- spring.io 创建5个模块,引入 web 和 openfeign。注:不推荐这么做,应首先创建父工程,并先在父POM中写好 <dependencyManagement>,配好springboot和springcloud的版本
商品服务 product 端口 35200
仓储服务 ware 端口 35300
订单服务 order 端口 35400
优惠券服务 coupon 端口 35500
用户服务 member 端口 35600
- 编写父POM文件,主要是<modules>里把5个模块引入
- 写 .gitingore
**/mvnw
**/mvnw.cmd
**/.mvn
**/target/
.idea
**/.gitignore
初始化数据库
数据库建表
人人开源搭建后台管理系统
后端
- https://gitee.com/renrenio/renren-fast 后台管理系统的的后端 采用 springboot mybatis
- 将renren-fast克隆,复制到项目中(和5个模块同一级),删除.git,在父POM中关联
- 根据 renren-fast/bd/mysql.sql 在数据库中建立 gulimall_admin 库
前端
- https://gitee.com/renrenio/renren-fast-vue 后台管理系统的前端 采用vue
- 用 vscode 打开文件夹 执行安装 npm install
- npm run dev 启动应用。按照提示访问即可
利用renren-generator自动生成增删改查代码
- 克隆 https://gitee.com/renrenio/renren-generator
- 删除其中的.git文件夹,并复制到工程中,添加到父POM,修改 applicatio.yml 和 generator.properties
url: jdbc:mysql://192.168.2.3:23306/gulimall_pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: root
password: 123456
mainPath=com.atguigu
#包名
package=com.atguigu.gulimall
moduleName=product
#作者
author=madokast
email=578562554@qq.com
#表前缀(类名不会包含表前缀)
tablePrefix=pms_
- 修改 resource/template/Controller.java.vm,注释掉 @RequiresPermissions有关代码
- 启动应用,访问 http://localhost/#generator.html 生成代码,将代码复制到项目对应模块
- 解决报错问题,主要是缺少common包和mybatis-plus-boot-starter、org.apache.httpcomponents、commons-lang依赖
- 因此新建 gulimall-common 模块,缺少的类直接从 renren-generator 中复制,例如 R类,用于所有返回值
- 其他模块引用 gulimall-common,配置相关的application.yml
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://192.168.2.3:23306/gulimall_pms?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
global-config:
db-config:
# 主键自增
id-type: auto
server:
port: 35200
- 解决报错后,测试一下数据库访问是否成功,例如访问http://192.168.2.13:35200/product/brand/list
- 没有问题后,将其他4个服务的CRUD代码也一一生成复制到项目。