第一篇:项目介绍&框架搭建

前言:
本文是一篇实战视频的笔记和总结。

1.电商的基本介绍

电商是什么?电子商务,就是网上交易所。比如淘宝,京东,阿里巴巴,1号店等等

1.1.电商行业的特点

  • 技术新:和传统项目(比如XXX管理系统)相比,用到的技术比较新
  • 技术范围广:不限于框架的整合,比如我们自己创建一个小项目的话,SSM或者SSH就可以解决我们的开发问题,但是由于电商涉及的数据量,访问量是巨大的,要整合其他很多技术
  • 分布式
  • 高并发(同时访问量大),集群,负载均衡,高并用
  • 海量数据(涉及到的数据非常多,用大数据技术处理)
  • 业务复杂
  • 系统安全

电商的模式

  • B2B:商家到商家。阿里巴巴
  • B2C:商家到用户。京东
  • C2C:用户到用户。淘宝
  • B2B2C:商家到商家到用户。天猫
  • O2O:线上到线下。百度外卖,美团,饿了么

2.架构

2.1功能列表

image.png

2.2系统架构

传统架构:


image.png

1000并发:


image.png

当我们的访问达到10000的时候就需要20台服务器做tomcat集群。当tomcat集群中节点数量增加,服务能力先增加然后下降;这是因为资源都消耗在Tomcat之间的广播交流中。所以集群中节点数量不能太多,一般也就5个左右!!
解决方案:


image.png

分布式架构:多个子系统相互协作才能完成的业务流程。系统之间需要通信(webservice)
集群:同一个工程部署到多台服务器中。

分布式架构的优点和缺点:
优点:
1.把模块拆分,利用接口通信,降低了模块之间的耦合度
2.把项目拆分若干个子项目,方便团队协作
3.可以灵活的进行分布式部署
缺点:
1.系统职期间交互需要使用远程通信,增加接口开发量
2.一些通用的业务逻辑无法公用

2.3解决通用的业务逻辑无法公用的方案

image.png

系统的架构如下:


image.png

服务层和表现层之间用中间件Dubbo,加快交互的速度。服务处和数据层之间用redis缓存技术。持久层是Mysql的集群,由MyCat来建立一个逻辑上的数据库。Solr服务处理检索任务。消息队列则是处理每个模块的消息

3.系统的基本搭建

本项目的用的ide是idea,所以配置是按照是idea来的。项目配置利用的是Maven来管理,没有学习的朋友可以先去学习下Maven的基本应用
传送门:
https://www.imooc.com/learn/443
下面开始项目的搭建
开发ide:idea;
Maven:3.3.9

1.目录

image.png

简单介绍一下目录结构:
common-parent:为所有项目的父项目,主要用来管理所有项目使用的jar包及其版本。 (所有的项目都应该继承父工程)
common-utils:为公共的工具类项目,继承父项目,它会被打成jar包供其它项目使用。
taotao-manager:为我们自己的项目,继承与我们的父项目,聚合工程。
taotao-manager-pojo为我们自己项目的一个子模块,依赖与taotao-manager,打成jar包
taotao-manager-dao为我们自己项目的一个子模块,依赖与taotao-manager-pojo,打成jar包
taotao-manager-service为我们自己项目的一个子模块,依赖与taotao-manager-dao,打成war包
taotao-manager-web为我们自己项目的一个子模块,依赖与taotao-manager-service,打成war包

2.创建父工程(common-parent)

1.创建新项目


image.png
  1. 来到创建目录,选择Empty project,next


    image.png
  2. 来到New Project页面,填写project name,选择Project location,点Finish


    image.png

    等待IDEA加载完成,进行下一步

  3. 选择File–>New–>Module,进入New Module页面:


    image.png
  4. 在New Module页面,按如下步骤操作:


    image.png
  5. 填写组织名称和项目名称,以及版本号


    image.png
  6. 配置本地maven目录及maven仓库配置文件


    createParent8
  7. 创建父工程最后一步,给Module取名,及选择工作目录,选择完成


    createParent9

    等待生成pom文件,注意修改打包方式为pom,修改pom文件如下:



  4.0.0

  com.lan
  common-parent
  1.0-SNAPSHOT
  pom

  common-parent
  
  http://maven.apache.org

  
    1.8
    1.8
    UTF-8
    4.12
    4.2.4.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
    4.1.4
    0.9.1
    1.3.1
    2.7.2
    4.10.3
    2.5.3
    3.4.7
    0.1
    5.11.2
    2.3.23
    2.2.2
  

  
    
      
      
        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}
      
      
      
        org.quartz-scheduler
        quartz
        ${quartz.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}
      
      
        org.springframework
        spring-jms
        ${spring.version}
      
      
        org.springframework
        spring-context-support
        ${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}
      
      
      
        com.alibaba
        dubbo
        ${dubbo.version}
      
      
        org.apache.zookeeper
        zookeeper
        ${zookeeper.version}
      
      
        com.github.sgroschupf
        zkclient
        ${zkclient.version}
      
      
        org.apache.activemq
        activemq-all
        ${activemq.version}
      
      
        org.freemarker
        freemarker
        ${freemarker.version}
      
    
  


  
    ${project.artifactId}
    
      
        
          maven-clean-plugin
          3.0.0
        
        
        
        
          maven-resources-plugin
          3.0.2
          
            UTF-8
          
        
        
        
          maven-compiler-plugin
          3.7.0
          
            1.8
            1.8
            UTF-8
          
        
        
          maven-surefire-plugin
          2.20.1
        
        
          maven-jar-plugin
          3.0.2
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
        
        
          org.apache.tomcat.maven
          tomcat7-maven-plugin
          2.2
        

      
    

  

3.创建公共工具类

image.png

继承父项目

image.png

然后添加ArtifactId
image.png

image.png

修改pom




    
        common-parent
        com.lan
        1.0-SNAPSHOT
        ../common-parent/pom.xml
    
    4.0.0

    common-utils
    jar

    common-utils
    
    http://maven.apache.org

    
        UTF-8
    

    
    
        
        
            joda-time
            joda-time
        
        
        
            org.apache.commons
            commons-lang3
        
        
            org.apache.commons
            commons-io
        
        
            commons-net
            commons-net
        
        
        
            com.fasterxml.jackson.core
            jackson-databind
        
        
        
            org.apache.httpcomponents
            httpclient
        
        
        
            org.quartz-scheduler
            quartz
        
        
        
            junit
            junit
        
        
        
            org.slf4j
            slf4j-log4j12
        
    


    
        
            
                
                    maven-clean-plugin
                    3.0.0
                
                
                
                    maven-resources-plugin
                    3.0.2
                
                
                    maven-compiler-plugin
                    3.7.0
                
                
                    maven-surefire-plugin
                    2.20.1
                
                
                    maven-war-plugin
                    3.2.0
                
                
                    maven-install-plugin
                    2.5.2
                
                
                    maven-deploy-plugin
                    2.8.2
                
            
        
    


4.创建业务编辑包

创建开发项目taotao-manager,其创建步骤同上,同样是继承common-parent,同样修改其pom文件,详细如下:




    
        common-parent
        com.lan
        1.0-SNAPSHOT
        ../common-parent/pom.xml
    
    4.0.0

    taotao-manager
    pom

    taotao-manager
    http://maven.apache.org
    
        ../taotao-manager-pojo
        ../taotao-manager-dao
        ../taotao-manager-interface
        ../taotao-manager-service
        ../taotao-manager-web
    

    
        UTF-8

    

    
        
            com.lan
            common-utils
            1.0-SNAPSHOT
        
    

    
        
            
                
                    maven-clean-plugin
                    3.0.0
                
                
                
                    maven-resources-plugin
                    3.0.2
                
                
                    maven-compiler-plugin
                    3.7.0
                
                
                    maven-surefire-plugin
                    2.20.1
                
                
                    maven-war-plugin
                    3.2.0
                
                
                    maven-install-plugin
                    2.5.2
                
                
                    maven-deploy-plugin
                    2.8.2
                
                
                    org.apache.tomcat.maven
                    tomcat7-maven-plugin
                    
                        8080
                        /
                    
                
            
        
    


5.开发子模块

创建taotao-manager-pojo,dao,interface,service,web等子模块,详细如下:


image.png

image.png

与创建common-utils时不同,是将其子模块添加到taotao-manager目录下的:

image.png

创建taotao-manager下其它子模块:
另外的模块创建方式和上面所述的创建方式相同,只有web模块需要选择


image.png

pojo的pom配置(依赖manager)




    
        taotao-manager
        com.lan
        1.0-SNAPSHOT
        ../taotao-manager/pom.xml
    
    4.0.0

    taotao-manager-pojo
    jar
    taotao-manager-pojo
    http://maven.apache.org

    
        UTF-8
    


    
        
            
                
                    maven-clean-plugin
                    3.0.0
                
                
                
                    maven-resources-plugin
                    3.0.2
                
                
                    maven-compiler-plugin
                    3.7.0
                
                
                    maven-surefire-plugin
                    2.20.1
                
                
                    maven-jar-plugin
                    3.0.2
                
                
                    maven-install-plugin
                    2.5.2
                
                
                    maven-deploy-plugin
                    2.8.2
                
            
        
    


dao依赖manager




    
        taotao-manager
        com.lan
        1.0-SNAPSHOT
        ../taotao-manager/pom.xml
    
    4.0.0

    taotao-manager-dao
    jar
    taotao-manager-dao
    http://maven.apache.org

    
        UTF-8
    

    
        
            com.lan
            taotao-manager-pojo
            1.0-SNAPSHOT
        
        
        
            org.mybatis
            mybatis
        
        
            org.mybatis
            mybatis-spring
        
        
            com.github.miemiedev
            mybatis-paginator
        
        
            com.github.pagehelper
            pagehelper
        
        
        
            mysql
            mysql-connector-java
        
        
        
            com.alibaba
            druid
        
    


    
        
            
                
                    maven-clean-plugin
                    3.0.0
                
                
                
                    maven-resources-plugin
                    3.0.2
                
                
                    maven-compiler-plugin
                    3.7.0
                
                
                    maven-surefire-plugin
                    2.20.1
                
                
                    maven-jar-plugin
                    3.0.2
                
                
                    maven-install-plugin
                    2.5.2
                
                
                    maven-deploy-plugin
                    2.8.2
                
            
        
    


interface依赖manager



    
        taotao-manager
        com.lan
        1.0-SNAPSHOT
        ../taotao-manager/pom.xml
    
    4.0.0

    taotao-manager-interface
    
        
            com.lan
            taotao-manager-pojo
            1.0-SNAPSHOT
        
    

service




    
        taotao-manager
        com.lan
        1.0-SNAPSHOT
        ../taotao-manager/pom.xml
    
    4.0.0

    taotao-manager-service
    war
    taotao-manager-service
    http://maven.apache.org
    
        UTF-8
    

    
        
            com.lan
            taotao-manager-dao
            1.0-SNAPSHOT
        
        
        
        
            org.springframework
            spring-context
        
        
            org.springframework
            spring-beans
        
        
            org.springframework
            spring-webmvc
        
        
            org.springframework
            spring-jdbc
        
        
            org.springframework
            spring-aspects
        
        
            org.springframework
            spring-jms
        
        
            org.springframework
            spring-context-support
        
    


    
        
            
                
                    maven-clean-plugin
                    3.0.0
                
                
                
                    maven-resources-plugin
                    3.0.2
                
                
                    maven-compiler-plugin
                    3.7.0
                
                
                    maven-surefire-plugin
                    2.20.1
                
                
                    maven-jar-plugin
                    3.0.2
                
                
                    maven-install-plugin
                    2.5.2
                
                
                    maven-deploy-plugin
                    2.8.2
                
            
        
    

web(依赖manager):



    
        taotao-manager
        com.lan
        1.0-SNAPSHOT
        ../taotao-manager/pom.xml
    

    4.0.0
    war

    taotao-manager-web
    taotao-manager-web
    
        
        
            jstl
            jstl
        
        
            javax.servlet
            servlet-api
            provided
        
        
            javax.servlet
            jsp-api
            provided
        
    





6.运行项目

要注意的是记得在taotao-manager的pom文件中配置了tomcat的插件


    
    
        
            org.apache.tomcat.maven
            tomcat7-maven-plugin
            
                8080
                /
            
        
    

image.png

将common-parent和common-utils添加到本地仓库中不然会报错
配置maven


image.png

然后再service层加个Index.jsp试一试
运行:


image.png

image.png

大功告成!
本文的配置参考:
https://blog.csdn.net/williamhappy/article/details/54376855
https://blog.csdn.net/for_my_life/article/details/78939078
项目地址:
https://github.com/AslanYJ/shopping

你可能感兴趣的:(第一篇:项目介绍&框架搭建)