# 编写的原因
写在前面,很多加入我们群里的人,都会问我们源码在哪里,现在仔细回答一下
1. 我们已经声明了,这是一个前后端分离的商城,而且分离的很彻底,java的后台管理系统不是jsp,使用vue写的,所以商城的后台管理在vue这个项目 https://gitee.com/gz-yami/mall4v ,启动完java,不要访问java的端口,启动vue,访问vue的端口页面,就能看到后台管理,就能上商品了!!!
2. 和上面一样的,很多人问,前端的浏览商品的页面在哪里,其实就在这里 https://gitee.com/gz-yami/mall4m
3. 有人会问你是不是将上面两个链接藏起来了,上面两个项目的链接都在readme里面写着,可是很多人都不读。
4. swagger文档怎么访问不了,其实路径是/doc.html
5. 我们开源的刚上线直接申请通过了推荐项目,第一天就有100个星星,一个月就有1k的星星,大家都不是傻的,这代码是能用的,拜托...后来没怎么维护(整个流程都是好的,整个功能都是好的,都不知道维护啥),现在又开始维护了,星星也没了(如果你悄悄拿去做外包项目,觉得这个项目对你有用,就给个星星呗)
## 先确定我们下载的项目有几个项目
- mall4j:j代表java,java项目,这里面包含了小程序/后台vue连接需要的接口。
- mall4v:v代表vue项目,是后台管理员界面使用的前端项目,因为前后端分离的
- mall4m:m代表mini,小程序项目,这里的项目是小程序的项目
- mall4uni:uni代表uniapp,H5项目,这里的项目是H5的项目
- jvm:java虚拟机啦~
## 1.java开发环境安装
### 1.1开发环境
以下版本是最低要求的!!! 提问问题前请注意开发环境!!
| 工具 | 版本 |
|---------|-------|
| jdk | 17 |
| mysql | 5.7+ |
| redis | 4.0+ |
| nodejs | 14-16 |
| xxl-job | 2.3.1 |
### 1.2 安装jdk + mysql + redis + maven
如果不了解怎么安装jdk的,可以参考 [菜鸟教程的java相关](https://www.runoob.com/java/java-environment-setup.html)
如果不了解怎么安装mysql的,可以参考 [菜鸟教程的mysql相关](https://www.runoob.com/mysql/mysql-install.html)
如果不了解怎么安装maven的,可以参考 [菜鸟教程的maven相关]( https://www.runoob.com/maven/maven-setup.html )
如果对于redis的安装并不了解的,可以参考 [菜鸟教程的redis相关](https://www.runoob.com/redis/redis-install.html)
安装相对简单,网上也有很多教程,这里就不多讲述。安装完按需对redis进行配置,后启动redis服务即可。
### 2.启动
- 推荐使用idea,安装lombok插件后,使用idea导入maven项目
- 将yami_shop.sql导入到mysql中,修改`application-dev.yml`更改 datasource.url、user、password
- 通过修改`shop.properties` 修改七牛云、阿里大于等信息
- 修改`api.properties` 修改当前接口所在域名,用于支付回调
- 启动redis,端口6379
- 通过`WebApplication`启动项目后台接口,`ApiApplication` 启动项目前端接口
- xxl-job定时任务,通过github或者gitee下载xxl-job的已经打包好的源码,把
## 3.vue开发环境安装
这是一套正常的vue启动流程。如果你无法理解,可能要先学习一下vue...
#### 3.1 安装nodejs + 淘宝npm镜像
如果不了解怎么安装nodejs的,可以参考 [菜鸟教程的nodejs相关](https://www.runoob.com/nodejs/nodejs-install-setup.html)
安装cnpm淘宝镜像,使用命令行输入,回车:
```bash
npm install -g cnpm --registry=https://registry.npm.taobao.org
```
#### 3.2 安装依赖启动项目
使用vs code打开vue项目,进入到该项目的根目录(根目录有`package.json` 的文件)
使用cnpm安装依赖(请勿直接使用npm安装依赖,除非你能确定你的网络能够畅快访问外网),使用命令行输入,回车:
```bash
cnpm i
```
平台端修改文件`.env.production`(生产环境)/ `.env.development`(开发环境)
里面的`VUE_APP_BASE_API`为api接口请求地址, `VUE_APP_RESOURCES_URL`为静态资源文件url
```json
// api接口请求地址
VUE_APP_BASE_API = 'http://192.168.1.120:8086'
// 静态资源文件url
VUE_APP_RESOURCES_URL = 'https://img.mall4j.com/'
```
移动端修改文件`utils\config.js`
里面的`domain`为api接口请求地址, `picDomain`为静态资源文件url
注意!!如果启动uni项目或者小程序,默认后台api服务端口号为8086,
如果启动后台项目,默认后台admin服务端口号为8085,请对照仔细填写后再启动,如遇401状态码,仔细检查端口号是否配置正确!
运行dev环境:
```bash
npm run dev
```
运行dev环境(H5):
```bash
npm run dev:h5
```
## 4.文档
这代码有没有文档呀?
当然有啦,你已经下载了,在doc这个文件夹上,实在不知道,我就给链接出来咯:
### [https://gitee.com/gz-yami/mall4j/tree/master/doc](https://gitee.com/gz-yami/mall4j/tree/master/doc)
- 开发环境准备
- 基本开发手册
- 项目目录结构
- 权限管理
- 通用分页表格
- Swagger文档
- undertow容器
- 对xss攻击的防御
- 分布式锁
- 统一的系统日志
- 统一验证
- 统一异常处理
- 文件上传下载
- 一对多、多对多分页
- 认证与授权
- 从授权开始看源码
- 自己写个授权的方法-开源版
- 商城表设计
- 商品信息
- 商品分组
- 购物车
- 订单
- 地区管理
- 运费模板
- 接口设计
- 必读
- 购物车的设计
- 订单设计-确认订单
- 订单设计-提交订单
- 订单设计-支付
- 生产环境
- nginx安装与跨域配置
- 安装mysql
- 安装redis
- 传统方式部署项目
- docker
- 使用docker部署商城
- centos jdk安装
- docker centos 安装
- Docker Compose 安装与卸载
- docker 镜像的基本操作
- docker 容器的基本操作
- 通过yum安装maven
- 常见问题