电商

  • 市场

    • 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包
      1. mybatis的jar包
      2. Mysql数据库驱动
      3. 数据库连接池
      4. Mybatis和spring的整合包
      5. Spring的jar包
      • 配置文件
      1. mybatis的配置文件
      2. Spirng的配置文件
        • 数据库连接池
        • SqlSessionFactory
        • mapper文件扫描器
  • Service层
    • spring的jar包

      • 配置文件:applicationContext-service.xml
      • 配置包扫描器,扫描所有带@Service注解的类
    • 事务配置
      • 配置文件:applicationContext-trans.xml 
        1. 事务管理器
        2. 配置tx
        3. 配置切面 
  • 表现层
    • 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的更多相关文章

  1. 001淘淘商城项目:项目的Maven工程搭建

    开始一个新的项目,特此记录,资料全部来源于传智播客,感谢. 我们要做一个类似电商的项目.用maven做管理. maven里面主要分为三种工程: 1:pom工程:用在父级工程,聚合工程中 2:war工程 ...

  2. 【原】从零开始改造淘淘商城(引入dubbo解决项目耦合)02

    前言: 关于为什么要引入dubbo框架,而不是用spring cloud或者是motan呢,主要是笔者现在公司用的就是dubbo,并且第一次接触到微服务的概念是来源于dubbo,再加上最近dubbo频 ...

  3. day78_淘淘商城项目_11_单点登录系统实现 + 用户名回显 + ajax请求跨域问题详解_匠心笔记

    课程计划 1.SSO注册功能实现 2.SSO登录功能实现 3.通过token获得用户信息 4.ajax跨域请求解决方案--jsonp 1.服务接口实现   SSO系统就是解决分布式环境下登录问题的,本 ...

  4. day68_淘淘商城项目_01

    原文:day68_淘淘商城项目_01 课程计划 第一天: 1.电商行业的背景介绍--电子商务 2.淘淘商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建--后台工程 a) 使用maven搭建 ...

  5. day68_淘淘商城项目_01_电商介绍 + 互联网术语 + SOA + 分布式 + 集群介绍 + 环境配置 + 框架搭建_匠心笔记

    课程计划 第一天: 1.电商行业的背景介绍--电子商务 2.淘淘商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建--后台工程 a) 使用maven搭建工程(工程大) b) 使用maven的 ...

  6. 第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结【第二天】

    淘淘商城(SpringMVC+Spring+Mybatis)  是传智播客在2015年9月份录制的,几年过去了.由于视频里课上老师敲的代码和项目笔记有些细节上存在出入,只有根据日志报错信息作出适当的调 ...

  7. 第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结【第一天】

    本人做过一年的MATLAB编程和简单维护过VB和C++的项目.是跟着网上获得的黑马的Java双元视频课来自学入门Java知识和常用框架的使用. 淘淘商城(SpringMVC+Spring+Mybati ...

  8. ZZJ_淘淘商城项目:day01(RESTful Web Service、SVN)

    淘淘商城项目是很适合初级Java程序员练习的实战项目,本次复习是另一位张老师教授的课,内容上与之前入老师版taotao商城比较有些新东西加了进来. 因此有必要记录下那些直到现在还可供参考的技术亮点分享 ...

  9. 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第十二天】(系统架构讲解、nginx)

    https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 ...

  10. 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第十一天】(购物车+订单)

    https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 ...

随机推荐

  1. 最短路径(Dijskra算法)

    声明:图片及内容基于:https://www.bilibili.com/video/BV16C4y1H7Zc?from=articleDetail 最短路径 Dijkstra算法 原理 数据结构 核心 ...

  2. redis的线程模型

    一.单进程模型来处理客户端的请求 Redis 基于 Reactor 模式开发了自己的网络事件处理器: 这个处理器被称为文件事件处理器(file event handler): 文件事件处理器是单线程的 ...

  3. CSS @property,让不可能变可能

    本文主要讲讲 CSS 非常新的一个特性,CSS @property,它的出现,极大的增强的 CSS 的能力! 根据 MDN -- CSS Property,@property CSS at-rule ...

  4. 软工案例分析作业-CSDN

    项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 案例分析作业要求 我在这个课程的目标是 提升软件开发能力与团队意识 这个作业在哪个具体方面帮助我实 ...

  5. matlab数值类型

    matlab数值类型 数值类型的分类 整数类型    整数类型有8种.上面的数字为其内存大小,如:int8,整数所占内存大小为8个字节.除了int64 和 uint64不能进行数值运算之外都可以. 类 ...

  6. Day13_73_死锁

    死锁 什么是死锁? - 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去. 死锁出现的原因? (1) 因为系统资源不足. 如果系统资源充足 ...

  7. PHP--date转成时间戳,time()获取的是秒数

    date("Y-m-d H:i:s");  //如果存成datetime型在MYSQL中 必须用这种格式 实现功能:获取某个日期的时间戳,或获取某个时间的时间戳.strtotime ...

  8. 【ElasticSearch】文档路由的原理

    ElasticSearch集群环境下新增文档如何确认该文档被分配到哪个分片中? 路由算法: ⾸先这肯定不会是随机的,否则将来要获取⽂档的时候我们就不知道从何处寻找了.实际上,这个过程是根据下⾯这个公式 ...

  9. Thinkphp5之Bootstrap自定义BootstrapDetailed分页插件的实现

    首先,在此目录建立一个newcrm\thinkphp\library\think\paginator\driver\BootstrapDetailed.php文件,代码如下: <?php // ...

  10. Thinkphp5之ajax分页实现_paginate()参数详细

    Thinkphp5 做数据搜索需要带关键词分页,如何将查询条件带入到分页中,本文详细介绍Thinkphp5 分页带参数 一.基本使用方法: $list = Db::name('user')->w ...