Commit bbf71ee3 authored by Junling Bu's avatar Junling Bu
Browse files

update[doc]: 完善文档的开发方案介绍。

parent 4de3e993
...@@ -9,14 +9,15 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实 ...@@ -9,14 +9,15 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实
项目的架构是三个系统和六个模块: 项目的架构是三个系统和六个模块:
* 基础系统(core),由数据库、数据库业务模块litemall-db、对象存储模块litemall-os-api组成; * 基础系统(core),由数据库、litemall-cre模块litemall-db模块litemall-os-api模块和litemall-all模块组成;
* 小商场系统(wxmall),由litemall-wx-api模块和litemall-wx模块组成; * 小商场系统(wxmall),由litemall-wx-api模块和litemall-wx模块组成;
* 后台管理系统(admin),由litemall-admin-api模块和litemall-admin模块组成。 * 后台管理系统(admin),由litemall-admin-api模块和litemall-admin模块组成。
* 简单商城系统(mall),这里仅列出,目前没有开发计划。 * 简单商城系统(mall),这里仅列出,目前没有开发计划。
而六个模块的开发设计到三种技术栈: 而六个模块的开发设计到三种技术栈:
* Spring Boot技术栈,采用IDEA开发工具,开发litemall-db、litemall-os-api、litemall-admin-api和litemall-wx-api共四个模块; * Spring Boot技术栈,采用IDEA开发工具,开发litemall-core、litemall-db、litemall-all、
litemall-os-api、litemall-admin-api和litemall-wx-api共六个个模块;
* miniprogram(微信小程序)技术栈,采用微信小程序开发工具,开发litemall-wx模块; * miniprogram(微信小程序)技术栈,采用微信小程序开发工具,开发litemall-wx模块;
* Vue技术栈,采用VSC开发工具,开发litemall-admin模块。 * Vue技术栈,采用VSC开发工具,开发litemall-admin模块。
...@@ -33,53 +34,29 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实 ...@@ -33,53 +34,29 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实
### 1.2.1 小程序端功能 ### 1.2.1 小程序端功能
* 首页 * 首页
* 专题列表 * 专题列表
* 专题详情 * 专题详情
* 分类列表 * 分类列表
* 分类详情 * 分类详情
* 品牌列表 * 品牌列表
* 品牌详情 * 品牌详情
* 新品首发 * 新品首发
* 人气推荐 * 人气推荐
* 商品搜索 * 商品搜索
* 商品详情 * 商品详情
* 商品评价列表 * 商品评价列表
* 商品评价 * 商品评价
* 购物车 * 购物车
* 下单 * 下单
* 我的主页 * 我的主页
* 订单列表 * 订单列表
* 订单详情 * 订单详情
* 地址列表 * 地址列表
* 地址添加 * 地址添加
* 我的收藏 * 我的收藏
* 我的足迹 * 我的足迹
* 支付页面(待定) * 支付页面(待定)
* 优惠券选择(待定) * 优惠券选择(待定)
* 我的优惠券(待定) * 我的优惠券(待定)
### 1.2.2 管理平台功能 ### 1.2.2 管理平台功能
...@@ -133,6 +110,8 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实 ...@@ -133,6 +110,8 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实
* 安全方面,仅采用最基本的代码,提供简单基本的安全服务; * 安全方面,仅采用最基本的代码,提供简单基本的安全服务;
* 性能方面,没有涉及内存数据库缓存功能,而是完全依赖MySQL; * 性能方面,没有涉及内存数据库缓存功能,而是完全依赖MySQL;
* 对象存储服务(图片上传和下载)方面,没有采用云存储方案,而是实现自有的简单文件上传下载功能。对象只是简单存储在后台主机的一个文件夹中,从而解耦当前项目对对象存储云平台的依赖,同时加强对对象存储概念的理解。 * 对象存储服务(图片上传和下载)方面,没有采用云存储方案,而是实现自有的简单文件上传下载功能。对象只是简单存储在后台主机的一个文件夹中,从而解耦当前项目对对象存储云平台的依赖,同时加强对对象存储概念的理解。
* 部署方便,支持多服务部署和一键部署脚本,也支持war项目安装包部署。
* 文档全面,虽然还在开发中,但是规划中文档和代码注释一定会完成,帮助开发者理解项目。
总之,目前的系统只是为了学习技术和业务而开发的一个简单商场原型系统。虽然缺失很多企业级功能,但是是完整和合理的原型系统。 总之,目前的系统只是为了学习技术和业务而开发的一个简单商场原型系统。虽然缺失很多企业级功能,但是是完整和合理的原型系统。
...@@ -153,34 +132,119 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实 ...@@ -153,34 +132,119 @@ litemall是一个简单的商场系统,基于现有的开源项目,重新实
* litemall-wx没有前端访问地址,而是直接在微信小程序工具上编译测试开发,最终会部署到微信官方平台(即不需要自己部署web服务器),而数据则来自litemall-wx-api * litemall-wx没有前端访问地址,而是直接在微信小程序工具上编译测试开发,最终会部署到微信官方平台(即不需要自己部署web服务器),而数据则来自litemall-wx-api
### 1.4.0 数据库
按照开发环境前,需要先在本地配置好数据库:
1. 本项目目前采用MySQL,请上网下载安装MySQL 5.7.x
注意:
> 目前发现一个问题是,MySQL必须安装5.7.x, 如果是5.6或者最新的8.0都会存在错误。
> 目前原因还没有找到(可能是采用JSON引起),希望开发者注意或者有好的解决方案。
2. 数据库文件存放在litemall-db/sql文件夹中,其中litemall_schema.sql创建数据库和用户权限,
而litemall.sql则是具体的表和数据。开发者可以采用命令或者软件导入数据。
### 1.4.1 Spring Boot开发环境 ### 1.4.1 Spring Boot开发环境
1. 安装JDK8 1. 安装JDK8
2. 安装maven 2. 安装Maven
3. 安装Git(可选) 3. 安装Git(可选)
4. 安装IDEA Community 4. 安装IDEA Community,建议安装Maven插件和git插件
建议安装maven插件和Git插件
5. IDEA导入本项目 5. IDEA导入本项目
6. 采用maven命令行或者IDEA的maven插件安装本项目依赖库 6. 采用Maven命令安装依赖库
7. 编译本项目
8. 运行litemall-os-api, 打开浏览器,输入 例如:
```
cd litemall
mvn install
```
或者采用IDEA的Maven插件安装本项目依赖库,点击`install`
![](pic1/1-8.png)
7. 采用Maven命令编译本项目
例如:
```
cd litemall
mvn compile
```
此时可以看到,litemall-os-api等模块多了target文件夹,里面是编译出的文件。
或者采用IDEA的Maven插件编译本项目,点击`compile`
如果采用IDEA也可以跳过当前步骤,直接步骤8(因为运行时会自动编译再运行)。
8. 采用Maven命令运行本项目的litemall-os-api模块。
例如:
```
cd litemall/litemall-os-api
mvn spring-boot:run
```
或者采用IDEA,打开litemall-os-api模块的Application类
右键` Run Application.main()`方式运行该模块
![](pic1/1-9.png)
打开浏览器,输入
``` ```
http://localhost:8081/os/index/index http://localhost:8081/os/index/index
``` ```
如果出现JSON数据,则Spring Boot开发环境部署成功,litemall-os-api模块运行正常。 如果出现JSON数据,则Spring Boot开发环境部署成功,litemall-os-api模块运行正常。
9. 同上,运行litemall-wx-api, 打开浏览器,输入
9. 采用Maven命令运行本项目的litemall-wx-api模块。
例如:
```
cd litemall/litemall-wx-api
mvn spring-boot:run
```
如果采用IDEA,则litemall-wx-api模块的Application类
右键` Run Application.main()`方式运行该模块,
打开浏览器,输入
``` ```
http://localhost:8082/wx/index/index http://localhost:8082/wx/index/index
``` ```
如果出现JSON数据,则litemall-wx-api模块运行正常。 如果出现JSON数据,则litemall-wx-api模块运行正常。
10. 同上,运行litemall-admin-api, 打开浏览器,输入
``` 8. 采用Maven命令运行本项目的litemall-admin-api模块。
例如:
```
cd litemall/litemall-admin-api
mvn spring-boot:run
```
如果采用IDEA,则litemall-admin-api模块的Application类
右键` Run Application.main()`方式运行该模块,
打开浏览器,输入
```
http://localhost:8083/admin/index/index http://localhost:8083/admin/index/index
``` ```
如果出现JSON数据,则litemall-admin-api模块运行正常。 如果出现JSON数据,则litemall-admin-api模块运行正常。
注意: 注意:
> 由于设置了三个不同的端口,因此开发时,IDEA可以同时运行litemall-os-api、litemall-wx-api和litemall-admin-api三个Spring Boot程序。 > 1. 由于设置了三个不同的端口,因此开发时,IDEA可以同时运行
> litemall-os-api、litemall-wx-api和litemall-admin-api三个Spring Boot程序。
> 2. 有些熟悉IDE配置tomcat运行项目的开发者可能会运行litemall-all模块来运行整个项目,
> 这里是不建议的,甚至可能会出现错误的:
> * 实际上litemall-all模块的作用仅仅是打包war项目包,然后用于部署阶段。
> 此外,目前本人也没有尝试过在IDEA中配置tomcat运行项目。
> * Spring Boot开发通常也是采用直接运行Application的main方法,
> 因此熟悉IDE配置tomcat的开发者也应该切换思路。
> * 当前文档的开发和测试都是基于三个服务同时运行存在三个端口的情况,
> 因此如果开发时采用IDE配置tomcat的方式,实践过程中可能会和文档不一致。
> 3. 在上述开发步骤中,既介绍了Maven命令方式,也介绍了IDEA方式,但是仍然建议
> 开发时采用IDEA即可。
> 4. 以上是本人开发过程中采用的一些步骤,开发者可不拘泥于这些步骤。
### 1.4.2 微信小程序开发环境 ### 1.4.2 微信小程序开发环境
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment