电商
- 市场
- 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