[项目] 淘淘商城 Part.1
电商
- 市场
- 2013:79万笔/分钟
- 2014:13.4万亿,双11支付宝交易峰值285万笔/分钟
- 2015:50万亿
- 技术特点
- 一个Tomcat:500并发
- 分布式:上万并发
- 高并发、集群、负载均衡、高可用(冗余)
- 海量数据
- 业务复杂
- 系统安全:记录日志
- 架构
- Lamp:linux apache mysql php
- 小型机(ibm)+oracle+emc
- 廉价设备+分布式+java+mysql+缓存
项目概述
- 技术选型
- 数据库:mysql
- Dao层:mybatis、数据库连接池(德鲁伊druid)
- 缓存:redis
- 搜索:solr
- Service层:spring
- 表现层:springmvc、jstl、EasyUI、jsp、freemaker
- 图片服务器:FastDFS(分布式文件系统)
- 反向代理服务器:nginx
- 定时器:Quartz
- Web服务器:Tomcat
- 工程管理:maven
- 分布式架构
- 优点
- 把模块拆分,使用接口通信,降低模块之间耦合度
- 把项目拆分成若干子项目,不同团队负责不同子项目
- 增加功能时只需增加一个子项目,调用其他系统的接口即可
- 可灵活地进行分布式部署
- 缺点
- 系统间需要远程通信,接口开发增加工作量
- 优点
- 人员配置
- 产品经理:3人,做什么(需求)
- 项目经理:1人,怎么做
- 前端:5人,静态页面
- 后端:20人,实现功能
- 测试:5人
- 运维:3人,发布及维护

后台搭建
- 使用maven管理工程
- 创建聚合工程,每个模块都是一个jar包,可被其他系统依赖
- Taotao-parent
- 打包方式为pom
- pom文件中添加项目用到的所有jar包版本
- Taotao-common
- 打包方式为jar包
- Taotao-manager
- 打包方式为pom
- taotao-manager-pojo
- 打包方式为jar
- taotao-manager-dao
- 打包方式为jar
- 依赖mybatis
- taotao-manager-service
- 打包方式为jar
- 依赖Taotao-manager-dao
- 依赖spring
- taotao-manager-web
- 打包方式为war
- 依赖Taotao-manager-service
- Tomcat插件
- 在聚合工程中添加
- 将Taotao-parent、Taotao-common安装到本地仓库

svn使用
- VisualSVN Server
- 上传到svn,忽略setting文件夹,和.classpath,.project文件
- 下载后需转换成maven项目,使用导入“存在的maven工程”导入Eclipse
ssm框架整合
- Dao层
- 整合mybatis和spring
- jar包
- mybatis的jar包
- Mysql数据库驱动
- 数据库连接池
- Mybatis和spring的整合包
- Spring的jar包
- 配置文件
- mybatis的配置文件
- Spirng的配置文件
- 数据库连接池
- SqlSessionFactory
- mapper文件扫描器
- 整合mybatis和spring
- Service层
- spring的jar包
- 配置文件:applicationContext-service.xml
- 配置包扫描器,扫描所有带@Service注解的类
- 事务配置
- 配置文件:applicationContext-trans.xml
- 事务管理器
- 配置tx
- 配置切面
- 配置文件:applicationContext-trans.xml
- spring的jar包
- 表现层
- springmvc
- 配置文件:springmvc.xml
- 配置注解驱动
- 配置视图解析器
- 包扫描器,@Controller注解
- Web.xml
- Springmvc的前端控制器
- Spring容器初始化的listener
测试框架
- 需求
- 根据id查询商品信息,返回json数据
- 实现
- DAO层:查询tb_item,根据商品id查询,可用逆向工程生成的代码
- Service层:接收商品id,调用mapper查询商品信息,返回商品的pojo
- Controller层:接收商品id,调用Service返回一个商品的pojo,直接响应pojo,需返回json,使用@ResponseBody
[项目] 淘淘商城 Part.1的更多相关文章
- 001淘淘商城项目:项目的Maven工程搭建
开始一个新的项目,特此记录,资料全部来源于传智播客,感谢. 我们要做一个类似电商的项目.用maven做管理. maven里面主要分为三种工程: 1:pom工程:用在父级工程,聚合工程中 2:war工程 ...
- 【原】从零开始改造淘淘商城(引入dubbo解决项目耦合)02
前言: 关于为什么要引入dubbo框架,而不是用spring cloud或者是motan呢,主要是笔者现在公司用的就是dubbo,并且第一次接触到微服务的概念是来源于dubbo,再加上最近dubbo频 ...
- day78_淘淘商城项目_11_单点登录系统实现 + 用户名回显 + ajax请求跨域问题详解_匠心笔记
课程计划 1.SSO注册功能实现 2.SSO登录功能实现 3.通过token获得用户信息 4.ajax跨域请求解决方案--jsonp 1.服务接口实现 SSO系统就是解决分布式环境下登录问题的,本 ...
- day68_淘淘商城项目_01
原文:day68_淘淘商城项目_01 课程计划 第一天: 1.电商行业的背景介绍--电子商务 2.淘淘商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建--后台工程 a) 使用maven搭建 ...
- day68_淘淘商城项目_01_电商介绍 + 互联网术语 + SOA + 分布式 + 集群介绍 + 环境配置 + 框架搭建_匠心笔记
课程计划 第一天: 1.电商行业的背景介绍--电子商务 2.淘淘商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建--后台工程 a) 使用maven搭建工程(工程大) b) 使用maven的 ...
- 第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结【第二天】
淘淘商城(SpringMVC+Spring+Mybatis) 是传智播客在2015年9月份录制的,几年过去了.由于视频里课上老师敲的代码和项目笔记有些细节上存在出入,只有根据日志报错信息作出适当的调 ...
- 第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结【第一天】
本人做过一年的MATLAB编程和简单维护过VB和C++的项目.是跟着网上获得的黑马的Java双元视频课来自学入门Java知识和常用框架的使用. 淘淘商城(SpringMVC+Spring+Mybati ...
- ZZJ_淘淘商城项目:day01(RESTful Web Service、SVN)
淘淘商城项目是很适合初级Java程序员练习的实战项目,本次复习是另一位张老师教授的课,内容上与之前入老师版taotao商城比较有些新东西加了进来. 因此有必要记录下那些直到现在还可供参考的技术亮点分享 ...
- 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第十二天】(系统架构讲解、nginx)
https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 ...
- 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第十一天】(购物车+订单)
https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 ...
随机推荐
- 原生对象写法,dom调用方法
1 var App = (function () { 2 var App = function () { 3 //全局变量 4 this.init(); 5 this.a = ...
- 微信小程序授权登录以及用户信息相关接口调整导致授权框不弹出
前言:4月8号升级了小程序业务后提交了版本并上线.突然一个同事说体验版的点击"登录"按钮无效.当时觉得应该不会呀,这几天一直用手机调试,每天也在不停的登录授权,弹框一直有的呀.然后 ...
- 使用SignalR ASP.NET Core来简单实现一个后台实时推送数据给Echarts展示图表的功能
什么是 SignalR ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功能添加到应用程序的功能. 实时 web 功能使服务器端代码可以立 ...
- 201871010109-胡欢欢-实验一-软件工程的准备(初识github及《现代软件工程-构建之法》)
项目 内容 课程班级博客链接 2021年春软件工程课程班(2018级计算机科学与技术) 这个作业要求链接链接 实验一软件工程准备 我的课程学习目标 了解github的基本使用,学习markdown编辑 ...
- 一、python学习-基础语法
1.计算机文件大小单位 b = bit 位(比特) 位代表 0 1 B = Byte字节 1Byte = 8 bit //一个字节等于8位 1KB = 1024B 1MB = 1024KB 1GB = ...
- [开源]制作docker镜像不依赖linux和Docker环境
背景 最近群友们经常反馈docker镜像制作起来有点麻烦,我开源的antdeploy工具虽然可以制作镜像但是必须有一个提前:有一台安装好docker的linux服务器.因为大家开发环境基本上都是win ...
- Polly-故障处理和弹性应对很有一手
前言 对于运行中的系统,可以说百分百的小伙伴会经常遇见以下问题: 网络不通,突然又好了: 服务器宕机了: 调用服务接口超时了: 调用接口报错啦: 通讯信息发送失败需要重发: 以上只是列举了一些常遇到的 ...
- 认识Git并了解Git的基本知识
目录 认识Git 版本控制 版本控制的发展史 安装Git Git的核心概念 Git的使用原理 Git的工作流程 Git的基本流程 Git与SVN的区别 Git的基本使用 初始化Git 创建一个Git仓 ...
- JAVAEE_Servlet_07_设置网站欢迎页面
Web站点的欢迎页面的设置 * 欢迎页面怎么设置? - 假设在WebContent下创建login.html,想让login.html作为站点的欢迎页面. - 打开web.xml文件,添加<we ...
- 【Spring】循环依赖
@ 目录 循环依赖 是什么? Spring是如何解决的? 源码分析 细节 循环依赖 是什么? 简单的来说就是对象a的属性中引用了对象b,对象b的属性中引用了对象c......最后引用到a. < ...