項目特點
- 前後端分離。前端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 protected]
#表前綴(類名不會包含表前綴)
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代碼也一一生成複製到項目。