{"id":13841586,"url":"https://github.com/MrSorrow/taotao","last_synced_at":"2025-07-11T12:33:06.138Z","repository":{"id":49828112,"uuid":"136128858","full_name":"MrSorrow/taotao","owner":"MrSorrow","description":"IDEA版本淘淘商城","archived":false,"fork":false,"pushed_at":"2018-07-29T14:00:25.000Z","size":5507,"stargazers_count":92,"open_issues_count":1,"forks_count":51,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-05T17:28:44.894Z","etag":null,"topics":["fastdfs","idea","java","nginx","slor","ssm","sso","taotao"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MrSorrow.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-05T06:12:15.000Z","updated_at":"2024-04-14T13:32:30.000Z","dependencies_parsed_at":"2022-08-25T16:40:56.556Z","dependency_job_id":null,"html_url":"https://github.com/MrSorrow/taotao","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSorrow%2Ftaotao","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSorrow%2Ftaotao/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSorrow%2Ftaotao/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrSorrow%2Ftaotao/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrSorrow","download_url":"https://codeload.github.com/MrSorrow/taotao/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225720435,"owners_count":17513600,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastdfs","idea","java","nginx","slor","ssm","sso","taotao"],"created_at":"2024-08-04T17:01:16.215Z","updated_at":"2024-11-21T11:31:32.691Z","avatar_url":"https://github.com/MrSorrow.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","JavaScript (485)"],"sub_categories":[],"readme":"# 淘淘商城（IDEA版本）\n\n![](https://img.shields.io/badge/Java-1.8-blue.svg) ![](https://img.shields.io/badge/MySQL-5.6-blue.svg) ![](https://img.shields.io/badge/Tomcat-1.7-blue.svg) ![](https://img.shields.io/badge/Maven-3.3.9-blue.svg) ![](https://img.shields.io/badge/IDEA-2017.2-green.svg) ![](https://img.shields.io/badge/Windows-10-green.svg) ![](https://img.shields.io/badge/CentOS-6.4-green.svg) \n\n项目源自于某培训机构，重新利用IDEA实现。项目涉及功能：\n1. 后台聚合工程搭建，ssm框架整合;\n2. 商品管理，商品列表展示，商品添加中的商品类目选择；\n3. 商品添加：上传图片，Nginx，FastDFS。\n4. 商品添加实现：富文本编辑器的使用、商品的规格参数实现；\n5. 前台系统搭建：展示首页、展示商品类目；\n6. 首页大广告位的展示：Cms系统实现、redis缓存（集群）首页大广告位展示；\n7. 搜索功能的实现，使用solr实现（solr集群）；\n8. 商品详情页面实现，网页静态化freemaker实现；\n9. 单点登录系统实现，session共享；\n10. 购物车、订单系统；\n11. Quartz任务调度框架；项目部署、项目总结、面试中的问题。\n\n## 技术选型\n1. 数据库：mysql\n2. Dao层：mybatis、数据库连接池（德鲁伊druid）\n3. 缓存：redis\n4. 搜索：solr\n5. Service层：spring\n6. 表现层：springmvc、jstl、EasyUI、jsp、freemaker\n7. 图片服务器：FastDFS（分布式文件系统）\n8. 反向代理服务器：nginx\n9. 定时器：Quartz\n10. Web服务器：tomcat\n11. 工程管理：maven\n\n## 教程\n总体参考专栏博客：[项目实战之淘淘商城](https://blog.csdn.net/column/details/15737.html?\u0026page=5)\n### 聚合工程搭建\n1. 参考文档：[文章1](https://blog.csdn.net/wb8878/article/details/77162078)、[文章2](https://blog.csdn.net/for_my_life/article/details/78939078)、[文章3](https://blog.csdn.net/yerenyuan_pku/article/details/72669269)；\n2. 注意taotao-parent的依赖是\\\u003cdependencyManagement\u003e\\\u003c/dependencyManagement\u003e包裹的；\n3. 运行时需要用maven来install taotao-parent和taotao-common。\n\n### 提交github仓库\n1. 参考文档：[git提交到github](https://blog.csdn.net/a695017449/article/details/26103761)\n\n### SSM整合测试\n1. taotao-manager-web缺失java和resources目录：[文章](https://blog.csdn.net/u014756827/article/details/52497572)\n2. mapper文件拷贝缺失，参考：[文章](https://blog.csdn.net/xiaoshubiao/article/details/78563037)。其中拷贝到resources目录方法，需要新建和包名一致的目录并拷贝。\n3. 项目启动不起来，因为逆向工程生成的代码有问题。参考：[文章](https://bbs.csdn.net/topics/392273297)。索性不用逆向工程，纯手写！\n4. Idea @Autowired取消提示：[文章](https://blog.csdn.net/qqyouhappy/article/details/52366198)\n\n### 首页展示\n1. 参考文档：[展示后台管理页面](https://blog.csdn.net/yerenyuan_pku/article/details/72773063)\n2. 静态资源映射问题解决。\n\n### 商品列表分页展示\n1. 参考文档：[MyBatis分页插件(PageHelper)的使用以及商品列表展示](https://blog.csdn.net/yerenyuan_pku/article/details/72774381)\n\n### 添加商品类目选择\n1. 参考文档：[商品类目选择的实现](https://blog.csdn.net/yerenyuan_pku/article/details/72786989)\n2. 默认id参数\n\n### 图片服务器\n1. 为什么要额外架设图片服务器：集群的图片没有同步;\n2. FastDFS搭建图片服务器：JavaEE进阶——[CentOS开发环境搭建](https://blog.csdn.net/bskfnvjtlyzmv867/article/details/80679324)、[Nginx反向代理负载均衡](https://blog.csdn.net/bskfnvjtlyzmv867/article/details/80682470)、[FastDFS实现分布式文件系统](https://blog.csdn.net/bskfnvjtlyzmv867/article/details/80714435)\n3. service和controller实现：[实现图片上传功能](https://blog.csdn.net/yerenyuan_pku/article/details/72808000)\n4. 添加Jar包时，需要重新安装parent、common、manager工程。\n\n### 添加商品提交表单\n1. 参考文章：[实现添加商品功能](https://blog.csdn.net/yerenyuan_pku/article/details/72810937)\n\n### 商品规格参数\n1. 为何使用单表存储json冗余方式取代多表关联？[商品规格的数据库设计和实现流程](https://blog.csdn.net/qq_40369829/article/details/79515596)\n2. 实现方式：[商品规格参数的表结构设计](https://blog.csdn.net/qq_1017097573/article/details/68501687)\n3. 查询商品规格参数：类似商品列表分页展示，额外包含商品类目名称的一对一多表查询。\n\n### 维护商品规格参数\n1. 提交规格参数模板\n2. 规格参数模板使用：维护具体商品时根据分类id查询规格参数模板\n3. 保存具体商品规格参数：在商品表单提交之前，先把规格参数的信息，转换成json数据插入表中。\n4. 展示规格参数\n\n### 创建taotao-rest、taotao-portal工程\n1. 创建两个webapp的maven工程，配置参见最开始项目搭建过程。\n2. 修改tomcat端口号。\n\n### 前端首页显示\n1. 参考文档：[前台系统工程搭建](https://blog.csdn.net/yerenyuan_pku/article/details/72825533)\n2. 打包跳过测试：[IDEA中maven打包跳过Junit Test](https://www.cnblogs.com/ningheshutong/p/6380933.html)\n\n### 首页类目展示\n1. 跨域处理：[jsonp的原理及两种实现方式](https://blog.csdn.net/yerenyuan_pku/article/details/73296428)\n\n### CMS系统实现\n1. 内容分类管理树形列表显示\n2. 新增内容分类节点\n3. 内容详情分页查询\n4. 新增内容\n5. 展示轮播图\n\n### Redis缓存\n1. CentOS6.4搭建Redis单机与集群\n2. 利用Redis实现缓存功能\n3. 参考文档：[Redis集群搭建与缓存实现](https://blog.csdn.net/bskfnvjtlyzmv867/article/details/80834857)\n\n### 创建taotao-search工程\n1. 创建一个webapp的maven工程，类似taotao-rest；\n2. 搭建Solr服务；\n3. 完成商品信息导入；\n4. 搜索服务发布的实现。\n\n### 前端实现搜索\n1. 利用HttpClient调用taotao-search服务；\n2. 解决get参数乱码以及修改pojo的get方法解决图片显示问题。\n\n### Slor集群\n1. ZooKeeper集群搭建；\n2. Tomcat(Slor)集群搭建。\n\n### 商品详情页\n1. 发布服务：获取商品基本信息、商品描述和规格参数\n2. 前端延迟按需加载展示商品详情页面\n3. FreeMarker实现网页静态化——[FreeMarker模板引擎](https://blog.csdn.net/bskfnvjtlyzmv867/article/details/81099114)\n\n### 单点登录\n1. 创建单点登录系统taotao-sso，类似taotao-rest\n2. 发布服务\n3. 前台系统调用单点登录系统\n4. Session共享\n5. 登录拦截器实现\n\n### 购物车\n1. 免登录添加购物车\n2. 展示购物车商品列表\n3. 更新删除购物车商品数量\n\n### 订单服务\n1. 创建taotao-order的web工程\n2. 新增订单服务发布\n3. 前端系统跳转确认订单页面\n4. 前端调用订单系统服务提交订单","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMrSorrow%2Ftaotao","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMrSorrow%2Ftaotao","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMrSorrow%2Ftaotao/lists"}