导图社区 小程序商城APP功能开发框架模板思维导图
小程序商城APP功能开发框架模板,包括搜索系统,购物车系统,订单系统。单点登陆系统,前台系统,后台系统,项目介绍等等内容。
编辑于2023-02-26 13:46:36 广东小程序商城APP功能开发框架模板思维导图
项目介绍
电商行业
行业介绍
有钱途
发展速度快
高并发,大数据
技术特点
技术新
技术广
分布式
高并发、集群、负载均衡、高可用
海量数据
业务复杂
数据安全
淘淘商城
商城简介
B2C平台
社区型电子商务
名词解释
B2B
B2C
C2C
O2O
B2C平台
P2P
系统功能
系统功能图
系统架构
集中式架构
耦合性太高
session无法共享(无法搭建集群)
分布式架构
系统间调用性能低
系统间无法直接通知
人员配置
产品经理
项目经理
前端团队
后端团队
测试团队
运维团队
开发流程
后台系统
创建公共工程
taotao-common
required属性
Maven install
taotao-parent
管理依赖版本号
管理依赖
管理插件
创建聚合工程
解决代码重用性的问题
如果需要修改,只需要修改一处
pom.xml和物理存放地址
添加依赖的原则
实现域名访问
ip访问的缺点
域名访问的顺序
1.访问本地hosts文件
2.访问DNS服务器
修改hosts
使用Nginx
配置文件
listen
server_name
location
服务器地址
本地路径
三个命令
start Nginx.exe
Nginx.exe -s stop
Nginx.exe -s reload
反相代理
netstat -ano命令
访问流程
实现BaseService
项目开始就实现
常用方法
class注入
Spring泛型注入
商品管理
类目选择
前端js实现
Document的父子关系
EasyUI的tree组件使用
根据tree扩展两个get方法
新增商品
Long型保存价格(优化点)
商品描述表的拆分(优化点)
富文本编辑器
如何引入
原理
新增商品表单提交
价格的转换
富文本编辑器同步
开启事务不能捕获异常
service的事务嵌套
加入日志遵循的原则
修改商品
基本数据回显
没有字段的数据回显
自定义数据回显
查询商品
EasyUI的datagrid组件
通用查询方法
图片上传
富文本编辑器多图片上传组件
图片上传三步
加入依赖
加入上传解析器
编写上传逻辑
三种校验
大小校验
类型校验
内容校验
上传要求
返回json格式的数据
文本响应、json响应
设置响应
joda时间组件
配置图片服务器
Nginx搭建(优化点)
FTP服务器
NFS系统
图片服务器FastDFS
spring父子容器
spring容器和springMVC容器
@value注解的使用
父子容器的关系
父容器不能使用子容器资源(bean)
子容器可以使用父容器资源(bean)
解决问题
创建propertiesService
service获取配置文件信息
把service注入到controller中
商品添加规格参数
json转换表单js实现
把表单转换为json的js实现
商品规格参数
新增
一个类目只有一个模板
模板思想
动态生成模板js
把生成的模板转成json
列表查询
CMS(内容管理系统)
简介
解决的问题
功能为内容分类
功能内的数据为内容
表结构:分类表是树形
内容分类管理
动态生成树(js)
EasyUI的Menu组件
关闭window默认右键事件
后台逻辑
新增
修改父节点isParent
修改
删除
递归删除
是否修改父节点isParent
内容管理
内容列表
带参数datagrid的请求
查看Format方法
新增内容
富文本编辑器单图片上传
读写分离
读写分离简介
MySQL5.6多实例安装
日志配置
设置3380端口
安装多实例数据库
主从配置
主库配置
开启二进制日志
设置同步数据库
设置serverId
设置同步账户
从库配置
设置serverId
设置主库信息
启动同步
UUID重复问题
使用spring实现读写分离
前台系统
搭建前台系统
使用技术:Spring+SpringMVC
前台系统不直接访问数据库
Nginx配置多server_name
完成跳转首页
实现左侧菜单
在复杂的js中搜索内容
使用浏览器开发工具
eclipse使用Crtl+H
什么是跨域
jsonp原理
使用jQuery实现jsonp请求
SpringMVC实现jsonp支持
SpringMVC实现通用支持jsonp
HttpClient
简介
Apache子项目
支持http协议的客户端编程
GET、POST
伪装浏览器
设置头
获取头
连接管理
httpclient是多例
最大连接数
每个主机的最大连接数
清理无效连接
设置请求参数
实现大广告位
Spring和HttpClient整合
Jackson操作json
解析json
JsonNode
ArrayNode
序列化对象为json
反序列化
对象反序列化
集合反序列化
EasyUIResult移动到common工程
前台系统依赖后台系统pojo
使用Map封装数据
创建ApiService封装HttpClient
好处
代码重用性高
其他人不用学习HttpClient
常用对象
请求方法
NameValuePair和其实现类
Entity相关对象
常用API
获取状态码
获取响应体
Redis回顾
Redis的安装
itcast-redis
基本使用
连接池使用
分片式集群使用
左侧菜单栏添加缓存
前台和后台团队负责各自系统的性能优化
Spring和Jedis整合
在java中实现回调
添加缓存步骤
1.从缓存中命中
2.没有命中则执行原有逻辑
3.结果集写入缓存
添加缓存的原则
测试结果:响应速度快
大广告位添加缓存
RedisService移动到taotao-common
required属性
商品详情页
基础数据显示
扩展Item的Images属性
描述显示
规格参数显示
json解析,拼接html代码
添加缓存
@JsonIgnoreProperties,忽略未知字段
数据同步问题
接口通知
消息(MQ)
下单功能
ApiService增加Post的Json提交
用户登录拦截器
ThreadLocal使用
SprningMVC中请求如果以.html结尾 返回的响应为文本响应
再增加一个servlet-mapping
购物车功能
已登录
扩展ApiService的Put和Delete请求
使用拦截器查询用户信息
用户点击添加 购物车按钮
1.把商品放到购物车中
2.跳转到购物车显示页面
前端js实现
数量变更
价格格式化(两种)
未登录
完成对cookie的操作
过期时间和编码
基于购物车实现下单
使用cookie的问题
问题
cookie的大小限制
影响http请求的性能
解决
可以在cookie中保存key 具体数据放在redis中
单点登录系统
登录流程
以前的登录路程
现在的登录流程
接口开发
接口文档
密码要MD5加密
@JsonIgnore注解
登录信息保存在Redis中
查询时重置生存时间
数据校验
服务端数据校验组件
解决错误信息乱码问题
注册功能
接口安全问题
登录功能
无法写入cookie
修改Nginx配置文件
前台系统使用jsonp调用sso接口
订单系统
订单表结构
开放平台
订单id手动创建
表之间的关系
订单商品快照,数据库优化
接口开发
创建订单
Mapper扩展
一次发出多条sql
提交json数据
通用修改订单状态
Quartz
简介
4种核心接口
2种触发器
简单触发器
表达式触发器
生成表达式工具
Spring和Quartz整合
一个触发器只能有一个任务
一个任务可以有多个触发器
关闭超时未付款的订单
Spring-quartz的配置
关闭订单功能
关闭订单任务执行频率 (一分钟一次)
购物车系统
购物车流程
以前的流程
session销毁购物车销毁
使用服务器内存资源
未登录无法加入购物车
无法水平扩展
现在的流程
敏捷开发,瀑布模式
已登录状态和未登录状态
用户登录购物车数据合并
开发购物车接口
联合索引
使用规则
解释器
添加商品到购物车
根据用户id查询购物车
修改购物车商品数量
移除购物车商品
搜索系统
solr回顾
solr安装
管理界面
内置容器:jetty
solr的core
配置域名访问solr
设置域名
设置Nginx
配置jetty
创建core
conf、data两个目录
启动命令
java -Dsolr.solr.home=taotao-solr -jar start.jar
HttpSolrServer创建
接口地址和管理界面地址
XML响应解析器
底层依赖httpclient
solrj,索引数据CRUD
没有更新方法
查询
高亮
逻辑查询OR,AND
两种删除方法
根据id删除
根据条件删除
历史数据导入
两个方案
忽略未知字段的注解
实现搜索功能
分为什么要创建taotao-search
团队开发
其他团队不需要学习solr
taotao-search功能
负责和solr交互
提供查询功能
关键字乱码解决
两种解决方案
不能暴露rows参数
完成搜索功能
存在的问题
solrconfig.xml和schema.xml
简介
solr的优化
RabbitMQ
RabbitMQ简介
AMQP协议
基于Erlang语言开发
其他的MQ
官网教程
RabbitMQ安装
安装顺序
Erlang
计算机名不能中文
用户名不能中文
使用默认路径
管理员权限安装
RabbitMQ
安装服务
启动管理工具
5672和15672
添加用户、设置权限
添加vhosts
用户和vhosts关联
5种队列
简单队列
work模式
订阅模式
路由模式
通配符模式
Spring-AMQP
Spring-AMQP和Spring-Rabbit
定义配置文件
连接工厂
定义模板
MQ的管理
定义交换机
定义队列
定义队列监听
通过模板发送消息
一般是json格式字符串
实现商品数据同步
以前的方案存在的缺点
耦合性太高
现在的方案存在的缺点
性能较低
单点故障
性能瓶颈
发送消息的内容
后台系统负责定义交换机、发送消息
前台搜索系统定义队列、消费消息
人工完成队列和交换机的绑定关系
5个面试题
发送消息失败后如何处理
如果队列中出现消息积压,怎么处理
如何保证RabbitMQ的高可用
在项目中如何使用RabbitMQ
如果商品数据需要延迟同步,如何处理
项目准备
统一环境
jdk1.7
eclipse
配置环境
编码
jdk
Maven
解决环境相关问题
插件冲突
更换工作空间
Maven
常见问题
解决环境和Maven问题的终极方案 换工作空间,删除本地仓库
Maven私服使用
中央仓库
svn
Share工程
开发代码放到trunk中
只检入src和pom.xml
maven聚合工程检入检出
解决冲突
通用Mapper
如何集成
如何使用
Pojo使用JPA注解
单条件查询
多条件查询
单表操作
分页插件
如何集成
注意和通用Mapper的顺序
如何使用
PageHelper
PageInfo
注意事项
RESTful
一种架构风格(思想)
两种Web Service
JAX-WS
JAX-RS
主要原则
URL和URI
资源操作
最佳实践
接口设计
响应设计
状态码