易购商城的第一天
1 安排计划
1、电商行业的背景。
2、易购商城的介绍。
3、工程项目的搭建。
2 电商行业介绍
2.1 电商行业技术特点
技术新技术范围广分布式高并发、集群、负载均衡、高可用海量数据业务复杂系统安全3 易购商城
3.1 易购商城简介
3.1.1 电商行业的模式:
B2B:企业对企业。阿里巴巴
B2C:企业对客户 淘宝,(京东B2B2C) 苏宁易购
C2C:客户对客户 闲鱼 赶集 友邻
O2O:线上对线下 百度外卖。美容到家。。。
3.1.2 易购商城的模式
易购网上商城是一个综合性的B2C平台,类似京东商城、天猫商城。会员可以在商城浏览商品、下订单,以及参加各种活动。
管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。
客服可以在后台管理系统中处理用户的询问以及投诉。
3.2 功能模块
3.2.1 功能描述
后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
搜索系统:提供商品的搜索功能。
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
3.3 技术架构
3.3.1 传统架构
传统项目架构问题:
1、 模块之间耦合度过高,其中一个升级其他都得升级
2、 开发困难,各个团队开发最后都要整合一起
3、 系统的扩展性差
4、 不能灵活的进行分布式部署。
解决方法:分布式设计
优点:
把模块拆分成独立的工程,单点运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
缺点:
系统之间交互需要额外的工作量来进行接口的开发。
把系统拆分成多个工程,要完成系统的工程需要多个工程协作完成。这种形式叫做分布式。
3.3.2 分布式的架构
分布式架构:
把系统按照模块拆分成多个子系统。
优点:
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
4、可以灵活的进行分布式部署。
缺点:
系统之间交互需要使用远程通信,调用接口。接口开发增加工作量。
3.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服务器)
3.3.4 开发工具和环境
Eclipse 4.5.0(Mars),自带maven插件。
Maven 3.3.3(开发工具自带)
Tomcat 7.0.53(Maven Tomcat Plugin)
JDK 1.7
Mysql 5.5
Nginx 1.8.0
Redis 3.0.0
Win7 操作系统
4 后台管理系统工程搭建
4.1 Maven
优点:1,依赖注入。
2,可以使用maven一些插件,tomcat
3,完成热部署。
4.2 Maven的工程类型:
Jar:javaProject
War:webProject
Pom:创建maven的逻辑项目。如:parent,使用maven构建聚合项目。
4.3 父工程的搭建
父工程应该是一个pom工程。在父工程中定义依赖的jar包的版本信息。Maven插件的版本。
4.3.1 安装本地仓库
使用.m2覆盖本地仓库的内容。
4.3.2 创建maven工程
4.3.3 修改pom文件
1 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215
4.4 创建一个common工程
也需要继承ego-parent工程。
4.4.1 创建工程
4.4.2 Pom文件
1 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
4.5 后台管理工程创建
搭建一个聚合工程:
4.5.1 工程结构
传统工程结构:
Project
|
|------web
|------service
|------dao
|------pojo
|------mapper
|------common
不使用maven:工程部署时需要手动复制jar包。完成工程构建。非常繁琐。
使用maven进行工程构建:
使用maven可以实现一步构建。
后台管理系统工程结构:
ego -parent -- 管理依赖jar包的版本,全局,公司级别
|-- ego -common --- 通用组件、工具类
|-- ego -manage -- 后台系统
|--com. ego.manage.web
|--com. ego.manage.service
|--com. ego.manage.mapper
|--com. ego.manage.pojo
4.5.2 ego -manager工程
4.5.2.1 工程搭建
4.5.2.2 修改pom文件
1
2 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 5 6 7 8 9 10 11 12
4.5.3 Ego-manager-pojo模块
4.5.3.1 创建工程
4.5.3.2 Pom文件
不需要修改,ego-manager-pojo模块不依赖任何jar包。
4.5.4 Ego-manager-mapper模块
4.5.4.1 创建工程
4.5.4.2 Pom文件修改
1 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
4.5.5 Ego-manager-service模块
4.5.5.1 创建工程
4.5.5.2 Pom文件
1 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
4.5.6 Ego-manager-web模块
4.5.6.1 创建工程
4.5.6.2 Pom文件
1 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
4.5.6.3 创建web.xml
1
2 3 xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 5 id="ego" version="2.5"> 6 7 8 9 10 11 12 13 14 15
5 测试maven工程
5.1 运行的工程
要运行工程,需要运行聚合工程也就是ego-manager。