总结:
电商商城终于在idea实现了。看来学习工具的使用还是要下点苦力的~电商其实并没有那么简单,学的也只是冰山一角。但是对于主流技术有了认识,不再是听都不知道用在什么地方的;其实看视频的话还是有很多东西没有实现的,我们来看看下面的图
image.png
- MyCat是还没实现的,网上资料有很多可以自己研究一下~就算做了数据库的集群也丝毫不会影响我们的代码,只要把数据库的连接改成MyCat的连接就好了!
- 工程的部署用的是tomcat的热部署这个到时候会单独写一篇笔记研究一下;
下面就是简单把一些我觉得比较重要的东西贴出来
1.简单总结
-
关于背景和项目的搭建
1、电商行业的背景b2b b2c b2b2c c2c o2o2
2、系统的架构。基于soa的架构。
3、工程搭建。使用maven管理工程
4、ssm框架整合。
5、使用dubbo进行通信
1)服务提供者
2)服务消费者
3)注册中心
4)监控中心
6.商品列表查询
1)PageHelper分页插件
2)EasyUI的DataGrid控件
相关链接:
第一篇:项目介绍&框架搭建 https://www.jianshu.com/p/4f7893163c7f
第二篇:SSM&dubbo&zookeeper搭建 https://www.jianshu.com/p/321067a66116 -
商品添加
1、商品分类选择,EasyUI的Tree控件。
2、图片上传
1)图片服务器FastDFS。tracker、storage
2)实现图片上传使用KindEditor的插件
3、富文本编辑器。
4、商品添加功能实现
相关链接:
第三篇:实现图片上传功能和KindEditor的使用 https://www.jianshu.com/p/c1eb6656cbeb -
首页展示和Cms系统搭建
1、商城首页展示。
2、cms系统搭建
1)内容分类管理
2)内容管理
3、前台从数据库中取内容信息实现动态展示
相关链接:
第四篇:实现前台系统搭建,Cms系统实现 https://www.jianshu.com/p/8546f1a643d7
第五篇:轮播图的实现 https://www.jianshu.com/p/1efb999179b8 -
redis的相关知识
1、redis的安装
2、redis的启动
3、redis的5种数据类型
4、redisCluster
1)至少有三个节点。
2)JedisCluster对象操作集群
5、向业务逻辑中添加缓存。
6、缓存同步
相关链接:
第六篇:搭建redis环境(单机版)https://www.jianshu.com/p/41e6038ab5b8
第七篇:搭建redis集群(伪分布式)https://www.jianshu.com/p/e125f801d5c6
第八篇:使用Spring来管理Redis,在业务中添加缓存 https://www.jianshu.com/p/3e5db4b9b5e7
-
搜索功能实现(Solr)
1、使用solr做搜索
2、配置业务域及中文分析器
3、商品数据导入索引库
4、搜索的实现。
相关链接:
第九篇:搭建Solr服务 https://www.jianshu.com/p/2a6fc81e80ff
第十篇:基于Solr服务搭建搜索工程 https://www.jianshu.com/p/a8b04089456a
第十一篇:基于Solr服务搭建搜索工程(前台)https://www.jianshu.com/p/661df03d5ff8 -
Solr集群
1、solrCloud
zookeeper集群
solr集群
2、使用solrJ连接集群
CloudSolrServer对象连接集群。
相关链接:
第十二篇:Solr集群 https://www.jianshu.com/p/e5686303ec9c
第十四篇:使用SolrJ管理集群 https://www.jianshu.com/p/b4d9b65210ba
第十五篇:全局异常处理 https://www.jianshu.com/p/743cc1617324 -
ActiveMQ
1、Activemq
2、queue点到点、topic广播
3、Producer
4、Consumer
作用是系统之间解耦时使用。实现数据最终一致。
相关链接:
第十六篇:使用ActiveMQ https://www.jianshu.com/p/5381879ba13f
第十七篇:ActiveMQ与Spring整合 https://www.jianshu.com/p/0d6d0ea57b7e -
商品详情页面展示
1、jsp+redis
缓存设置有效期。
2、网页静态化
1)freemarker
2)创建模板。
3)使用freemarker生成静态页面。
相关链接:
第十八篇:商品详情工程 https://www.jianshu.com/p/9fb029975143
第十九篇:查询商品详情页面添加缓存 https://www.jianshu.com/p/7f4fca6fd4a9 -
nginx
1、访问静态资源
2、配置虚拟主机
3、反向代理
4、实现负载均衡
Ngnix相关知识:https://www.jianshu.com/nb/27643762 -
sso系统
1、主要解决分布式环境下Session共享的问题。
2、使用redis保存Session
3、token相当于jSessionid,要保存到cookie中。
相关链接:
第二十篇:单点登录系统 https://www.jianshu.com/p/0d4670253200
第二十一篇:单点登录系统的具体实现(1) https://www.jianshu.com/p/af5ec975a428
第二十二篇:单点登录系统的具体实现(2) https://www.jianshu.com/p/767af267ff8b
第二十三篇:单点登录系统的具体实现(3) https://www.jianshu.com/p/eb5272d8642f -
购物车
1、把购物车保存到cookie中
2、把购车保存到服务端
相关链接:
第二十四篇:加入购物车功能的实现 https://www.jianshu.com/p/9c2b6637a823 -
订单系统
1、拦截器,判断用户是否登录
2、订单确认页面。
3、生成订单。订单号可以使用redis的incr命令生成。
相关链接:
第二十五篇:订单系统的实现 https://www.jianshu.com/p/04bd67384a04
题外话:
看视频学习的时候提到了电商活动倒计时的解决方案和秒杀的解决方案,不知道这种解决方案过时了没有贴出来让大家看看~
2.电商活动倒计时和秒杀解决方案
2.1电商活动倒计时
1、确定一个基准时间。可以使用一个sql语句从数据库中取出一个当前时间。SELECT NOW();
2、活动开始的时间是固定的。
3、使用活动开始时间-基准时间可以计算出一个秒为单位的数值。
4、在redis中设置一个key(活动开始标识)。设置key的过期时间为第三步计算出来的时间。
5、展示页面的时候取出key的有效时间。Ttl命令。使用js倒计时。
6、一旦活动开始的key失效,说明活动开始。
7、需要在活动的逻辑中,先判断活动是否开始。
2.2秒杀方案
1、把商品的数量放到redis中。
2、秒杀时使用decr命令对商品数量减一。如果不是负数说明抢到。
3、一旦返回数值变为0说明商品已售完。
4、如果下单了一直没有付款,可以利用Quartz不断去检测是否过期
附工程下载地址:
https://github.com/AslanYJ/shopping.git
比较详细的参考博文
https://blog.csdn.net/column/details/15971.html
网友评论