项目源自于某培训机构,重新利用IDEA实现。项目涉及功能:
- 后台聚合工程搭建,ssm框架整合;
- 商品管理,商品列表展示,商品添加中的商品类目选择;
- 商品添加:上传图片,Nginx,FastDFS。
- 商品添加实现:富文本编辑器的使用、商品的规格参数实现;
- 前台系统搭建:展示首页、展示商品类目;
- 首页大广告位的展示:Cms系统实现、redis缓存(集群)首页大广告位展示;
- 搜索功能的实现,使用solr实现(solr集群);
- 商品详情页面实现,网页静态化freemaker实现;
- 单点登录系统实现,session共享;
- 购物车、订单系统;
- Quartz任务调度框架;项目部署、项目总结、面试中的问题。
- 数据库:mysql
- Dao层:mybatis、数据库连接池(德鲁伊druid)
- 缓存:redis
- 搜索:solr
- Service层:spring
- 表现层:springmvc、jstl、EasyUI、jsp、freemaker
- 图片服务器:FastDFS(分布式文件系统)
- 反向代理服务器:nginx
- 定时器:Quartz
- Web服务器:tomcat
- 工程管理:maven
总体参考专栏博客:项目实战之淘淘商城
- 参考文档:文章1、文章2、文章3;
- 注意taotao-parent的依赖是<dependencyManagement></dependencyManagement>包裹的;
- 运行时需要用maven来install taotao-parent和taotao-common。
- 参考文档:git提交到github
- taotao-manager-web缺失java和resources目录:文章
- mapper文件拷贝缺失,参考:文章。其中拷贝到resources目录方法,需要新建和包名一致的目录并拷贝。
- 项目启动不起来,因为逆向工程生成的代码有问题。参考:文章。索性不用逆向工程,纯手写!
- Idea @Autowired取消提示:文章
- 参考文档:展示后台管理页面
- 静态资源映射问题解决。
- 参考文档:商品类目选择的实现
- 默认id参数
- 为什么要额外架设图片服务器:集群的图片没有同步;
- FastDFS搭建图片服务器:JavaEE进阶——CentOS开发环境搭建、Nginx反向代理负载均衡、FastDFS实现分布式文件系统
- service和controller实现:实现图片上传功能
- 添加Jar包时,需要重新安装parent、common、manager工程。
- 参考文章:实现添加商品功能
- 为何使用单表存储json冗余方式取代多表关联?商品规格的数据库设计和实现流程
- 实现方式:商品规格参数的表结构设计
- 查询商品规格参数:类似商品列表分页展示,额外包含商品类目名称的一对一多表查询。
- 提交规格参数模板
- 规格参数模板使用:维护具体商品时根据分类id查询规格参数模板
- 保存具体商品规格参数:在商品表单提交之前,先把规格参数的信息,转换成json数据插入表中。
- 展示规格参数
- 创建两个webapp的maven工程,配置参见最开始项目搭建过程。
- 修改tomcat端口号。
- 参考文档:前台系统工程搭建
- 打包跳过测试:IDEA中maven打包跳过Junit Test
- 跨域处理:jsonp的原理及两种实现方式
- 内容分类管理树形列表显示
- 新增内容分类节点
- 内容详情分页查询
- 新增内容
- 展示轮播图
- CentOS6.4搭建Redis单机与集群
- 利用Redis实现缓存功能
- 参考文档:Redis集群搭建与缓存实现
- 创建一个webapp的maven工程,类似taotao-rest;
- 搭建Solr服务;
- 完成商品信息导入;
- 搜索服务发布的实现。
- 利用HttpClient调用taotao-search服务;
- 解决get参数乱码以及修改pojo的get方法解决图片显示问题。
- ZooKeeper集群搭建;
- Tomcat(Slor)集群搭建。
- 发布服务:获取商品基本信息、商品描述和规格参数
- 前端延迟按需加载展示商品详情页面
- FreeMarker实现网页静态化——FreeMarker模板引擎
- 创建单点登录系统taotao-sso,类似taotao-rest
- 发布服务
- 前台系统调用单点登录系统
- Session共享
- 登录拦截器实现
- 免登录添加购物车
- 展示购物车商品列表
- 更新删除购物车商品数量
- 创建taotao-order的web工程
- 新增订单服务发布
- 前端系统跳转确认订单页面
- 前端调用订单系统服务提交订单