淘淘商城 第一天

 

 

 

 

 

淘淘商城

第一天

 

 

 

讲师:传智.入云龙

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.   聊聊电商行业

1.1.  电商行业发展

 

    近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化、相关服务业蓬勃发展、支撑体系不断健全完善、创新的动力和能力 不断增强。电子商务正在与实体经济深度融合,进入规模性发展阶段,对经济社会生活的影响不断增大,正成为我国经济发展的新引擎。

    中国电子商务研究中心数据显示,截止到2012年底,中国电子商务市场交易规模达7.85万亿人民币,同比增长30.83%。其中,B2B电子商务交易额 达6.25万亿,同比增长27%。而2011年全年,中国电子商务市场交易额达6万亿人民币,同比增长33%,占GDP比重上升到13%;2012年,电 子商务占GDP的比重已经高达15%。预计2013年我国电子商务规模将突破十万亿大关。

   

 

 

图1.2009-2014年中国电子商务市场交易规模(万亿元)

 

1.2.  11.11

 

 

 

1.3.  电商行业技术特点

  • 技术新
  • 技术范围广
  • 分布式
  • 高并发、集群、负载均衡、高可用
  • 海量数据
  • 业务复杂
  • 系统安全

 

 

2.   淘淘商城

2.1.  淘淘商城简介

淘淘网上商城是一个综合性的B2C平台,类似京东商城、天猫商城。会员可以在商城浏览商品、下订单,以及参加各种活动。

管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。

客服可以在后台管理系统中处理用户的询问以及投诉。

2.2.  功能架构

2.2.1.   系统功能图

 

 

2.2.2.   功能描述

后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。

前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。

会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。

订单系统:提供下单、查询订单、修改订单状态、定时处理订单。

搜索系统:提供商品的搜索功能。

单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。

2.3.  技术架构

2.3.1.   传统架构

 

 

思考:有什么问题?

1、  模块之间耦合度太高,其中一个升级其他都得升级

2、  开发困难,各个团队开发最后都要整合一起

3、  系统的扩展性差

4、不能灵活的进行分布式部署。

2.3.2.   分布式系统架构

 

 

分布式架构:

把系统按照模块拆分成多个子系统。

优点:

1、把模块拆分,使用接口通信,降低模块之间的耦合度。

2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。

3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。

4、可以灵活的进行分布式部署。

 

缺点:

系统之间交互需要使用远程通信,接口开发增加工作量。

 

2.3.3.   技术选型(主要技术)

l  Spring、SpringMVC、Mybatis

l  JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV

l  Redis(缓存服务器)

l  Solr(搜索)

l  httpclient(调用系统服务)

l  Mysql

l  Nginx(web服务器)

2.4.  开发工具和环境

Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。

Maven 3.3.3(开发工具自带)

Tomcat 7.0.53(Maven Tomcat Plugin)

JDK 1.7

Mysql 5.6

Nginx 1.8.0

Redis 3.0.0

Win7 操作系统

SVN(版本管理)

2.5.  人员配置

产品经理:3人,确定需求以及给出产品原型图。

项目经理:1人,项目管理。

前端团队:5人,根据产品经理给出的原型制作静态页面。

后端团队:20人,实现产品功能。

测试团队:5人,测试所有的功能。

运维团队:3人,项目的发布以及维护。

 

3.   后台管理系统工程结构

3.1.  maven管理的好处

1、项目构建。Maven定义了软件开发的整套流程体系,并进行了封装,开发人员只需要指定项目的构建流程,无需针对每个流程编写自己的构建脚本。

2、依赖管理。除了项目构建,Maven最核心的功能是软件包的依赖管理,能够自动分析项目所需要的依赖软件包,并到Maven中心仓库去下载。

A)管理依赖的jar包

B)管理工程之间的依赖关系。

 

3.2.  Maven本地仓库

在当前系统用户的文件夹下。例如当前用户是Administrator那么本地仓库就是在

C:\Users\Administrator\.m2目录下。

只需要用老师提供的.m2覆盖本地的就可以。

 

Maven插件使用eclipse mars自带maven插件。只需要统一开发环境。

 

 

 

 

 

3.3.  依赖管理

传统工程结构:

 
   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Maven管理的工程结构:

 

不使用maven:工程部署时需要手动复制jar包。完成工程构建。非常繁琐。

使用maven进行工程构建:

使用maven可以实现一步构建。

 

 

3.3.1.   后台管理系统的工程结构

 
   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

继承:

 

依赖:

 

 

 

 

后台管理系统工程结构:

taotao-parent -- 管理依赖jar包的版本,全局,公司级别

|--taotao-common  --- 通用组件、工具类

|--taotao-manage  -- 后台系统

  |--com.taotao.manage.web

  |--com.taotao.manage.service

  |--com.taotao.manage.mapper

  |--com.taotao.manage.pojo

 

 

3.4.  创建taotao-parent

3.4.1.   创建maven工程

 

 

3.4.2.   修改pom文件

"http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

     4.0.0

     com.taotao

     taotao-parent

     0.0.1-SNAPSHOT

     pom

    

    

          4.12

          4.1.3.RELEASE

          3.2.8

          1.2.2

          1.2.15

          5.1.32

          1.6.4

          2.4.2

          1.0.9

          4.3.5

          1.2

          2.5

          2.0

          2.5

          3.3.2

          1.3.2

          3.3

          3.4.2-fix

          0.9.1

          1.3.1

          2.7.2

          4.10.3

    

    

         

              

              

                    joda-time

                    joda-time

                    ${joda-time.version}

              

              

              

                    org.apache.commons

                    commons-lang3

                    ${commons-lang3.version}

              

              

                    org.apache.commons

                    commons-io

                    ${commons-io.version}

              

              

                    commons-net

                    commons-net

                    ${commons-net.version}

              

              

              

                    com.fasterxml.jackson.core

                    jackson-databind

                    ${jackson.version}

              

              

              

                    org.apache.httpcomponents

                    httpclient

                    ${httpclient.version}

              

              

              

                    junit

                    junit

                    ${junit.version}

                    test

              

              

              

                    org.slf4j

                    slf4j-log4j12

                    ${slf4j.version}

              

              

              

                    org.mybatis

                    mybatis

                    ${mybatis.version}

              

              

                    org.mybatis

                    mybatis-spring

                    ${mybatis.spring.version}

              

              

                    com.github.miemiedev

                    mybatis-paginator

                    ${mybatis.paginator.version}

              

              

                    com.github.pagehelper

                    pagehelper

                    ${pagehelper.version}

              

              

              

                    mysql

                    mysql-connector-java

                    ${mysql.version}

              

              

              

                    com.alibaba

                    druid

                    ${druid.version}

              

              

              

                    org.springframework

                    spring-context

                    ${spring.version}

              

              

                    org.springframework

                    spring-beans

                    ${spring.version}

              

              

                    org.springframework

                    spring-webmvc

                    ${spring.version}

              

              

                    org.springframework

                    spring-jdbc

                    ${spring.version}

              

              

                    org.springframework

                    spring-aspects

                    ${spring.version}

              

              

              

                    jstl

                    jstl

                    ${jstl.version}

              

              

                    javax.servlet

                    servlet-api

                    ${servlet-api.version}

                    provided

              

              

                    javax.servlet

                    jsp-api

                    ${jsp-api.version}

                    provided

              

              

              

                    commons-fileupload

                    commons-fileupload

                    ${commons-fileupload.version}

              

              

              

                    redis.clients

                    jedis

                    ${jedis.version}

              

              

              

                    org.apache.solr

                    solr-solrj

                    ${solrj.version}

              

         

    

 

    

          ${project.artifactId}

         

              

              

                    org.apache.maven.plugins

                    maven-resources-plugin

                    2.7

                   

                         UTF-8

                   

              

              

              

                    org.apache.maven.plugins

                    maven-compiler-plugin

                    3.2

                   

                         1.7

                         1.7

                         UTF-8

                   

              

         

         

              

                   

                   

                         org.apache.tomcat.maven

                         tomcat7-maven-plugin

                         2.2

                   

              

         

    

 

3.4.3.   将taotao-parent安装到本地仓库。

 

 

3.5.  taotao-common

3.5.1.   创建工程

 

3.5.2.   修改pom文件

修改taotao-common工程的pom文件,在文件中添加对taotao-parent的继承。

"http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  4.0.0

 

     com.taotao

     taotao-parent

     0.0.1-SNAPSHOT

 

  com.taotao

  taotao-common

  0.0.1-SNAPSHOT

 

3.5.3.   更新工程

工程点击右键→maven→update Project Configuration

3.6.  taotao-manage

3.6.1.   创建taotao-manager

 

修改pom文件:

 

3.6.2.   taotao-manage-pojo

 

 

 

3.6.3.   Taotao-manager-mapper

 

3.6.4.   Taotao-manager-service

 

3.6.5.   Taotao-manager-web

 

 

1.       配置工程:

 

 

 

2.       Web.xml

"1.0" encoding="UTF-8"?>

"http://www.w3.org/2001/XMLSchema-instance"

    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

    id="taotao" version="2.5">

    taotao-manager

   

        index.html

        index.htm

        index.jsp

        default.html

        default.htm

        default.jsp

   

 

 

3.6.6.   配置tomcat插件

运行web工程需要添加一个tomcat插件。插件必须添加到taotao-manager工程中。因为taotao-manager是聚合工程。在运行时需要把子工程聚合到一起才能运行。

 

         

              

              

                    org.apache.tomcat.maven

                    tomcat7-maven-plugin

                    2.2

                   

                         8080

                         /

                   

              

         

    

启动tomcat命令:tomcat7:run

 

3.6.7.   taotao-manage子模块依赖关系

 

 

依赖关系:

web è service

service è mapper

mapper è pojo

 

 

4.   提交代码到SVN

4.1.  提交代码

 

 

注意:提交到SVN的Maven项目,只提交src和pom.xml

4.2.  从SVN检出项目

1、  从trunk检出项目,并且重命名项目名称

2、  转化为maven项目


3、  聚合项目中子项目需要从父工程中【导入】,选择 【已经存在的maven项目】,不能从SVN再次检出子项目


你可能感兴趣的:(淘淘商城 第一天)