1电商核心业务主线
2电商介绍
2.1电商理解
电商,全名叫电子商务,英文名称Electronic Commerce,简称EC。
“21世纪要么‘电子商务’,要么‘无商可务’”——比尔盖茨对电子商务的高度评价。
电子商务通常是指在全球各地广泛的商业贸易活动中,在因特网开放的网络环境下,基于浏览器/服务器应用方式,买卖双方不谋面地进行各种商贸活动,实现消费者的网上购物、商户之间的网上交易和在线电子支付以及各种商务活动、交易活动、金融活动和相关的综合服务活动的一种新型的商业运营模式。
2.2电商运营模式(掌握)
按照电商行业的运营模型,一般分为以下几种模式:
B2B:商家到商家。例如:阿里巴巴(www.1688.com)、慧聪网。
B2C:商家到用户。例如京东商城、国美网上商城。
B2B2C:商家到商家到用户,比如京东、天猫都有第三方商户。
C2C:用户到用户。比如淘宝。
O2O:线上到线下,比如百度外卖、美团等。
2.3 11.11
2.4电商行业技术特点
分布式
高并发
高可用
集群
负载均衡
海量数据
系统安全
3天上人间商城介绍
3.1商城概述
天上人间(名字随便哈…)商城是一个综合性的B2C商城,运营模式类似京东商城。对于B2C模式的商城来说,它的系统主要包括『前台商城系统』、『后台管理系统』,及一些『周边系统』。
[商城会员]可以在『前台商城系统』搜索商品、用户登录、添加购物车、提交订单等操作。
[商城运营人员]可以在『后台管理系统』中管理商品、订单、会员等信息。
[商城客服人员]可以在『后台管理系统』中处理用户的询问以及投诉等操作。
3.2功能架构
3.3系统架构(重点)
项目类型:传统项目、互联网项目。
传统项目:使用人群是公司内部员工。没有高并发、集群、分布式等部署问题。
互联网项目:使用人群是互联网用户。有高并发、集群、分布式等部署问题。
传统项目只需要传统架构即可。
互联网项目需要集群分布式等架构思维。
3.3.1传统架构
依照传统架构实现的话,只需要创建一个应用(最终打成一个war包的工程)即可。
思考:传统架构在互联网应用中存在什么问题?
1、系统耦合性高,一个模块出现问题,其他模块都无法正常使用。
2、系统扩展性差,添加新功能时,会对现有系统产生破坏。
3.3.2分布式系统架构
依据分布式系统架构实现的话,需要创建多个工程,不同的工程完成不同的功能。
分布式架构:把系统按照系统模块拆分成多个独立的子系统。
优点:
1、系统之间弱耦合,把模块拆分,使用接口通信,降低模块之间的耦合度。
2、系统之间扩展性好,有新功能时,添加子模块即可,不会对原有系统产生破坏,大大增强系统可扩展性。
3、部署灵活方便,互联网应用需要进行分布式部署,使用这种架构,可以灵活的进行分布式部署。
缺点:
系统之间交互需要使用远程通信,接口开发增加工作量。
3.3.3天上人间商城系统架构(SOA)
天上人间商城的架构就是采用的分布式架构,只不过在此架构基础之上,我们又实现了面向服务的思想,所以天上人间商城的架构就是分布式服务架构。
天上人间商城架构体系两部分信息:
1、分布式(表现层分布式、服务层分布式)
2、面向服务(表现层和服务层拆分)
a)需要使用RPC框架(webservice,soap协议很大)
b)使用restful请求(比如移动端app调用后台服务,调用http请求)
c)Dubbo(阿里出品,只能在公司内部使用)
具体架构如下:
天上人间商城的架构:
1、先是按照工程的三层结构进行拆分。
2、其次再根据功能模块进行拆分。
3.4技术选项
Maven(管理依赖及工程构建)
SVN(版本控制工具)
SSM框架(spring+springmvc+mybatis)
Mysql(数据库)
JSP、jQuery、jQuery EasyUI、KindEditor(富文本编辑器)
Redis(缓存服务器)
Solr(搜索服务器)
Dubbo+zookeeper(调用&发布服务)
Nginx(http&反向代理服务器)
FastDFS(图片服务器)
Freemarker(页面静态化)
Activemq消息中间件
4搭建后台管理系统
整个电商系统中的工程都是由maven来创建。
Maven的核心功能:依赖管理、项目构建
Maven的核心概念:坐标(GAV)、依赖传递、继承、聚合
继承和聚合都是POM工程。
项目一创建的父工程,即体现继承也体现聚合。
在继承的父工程中,项目管理依赖版本。
在聚合工程中,实际上就是将聚合工程的子模块,最终合成一个war包。
使用maven很重要的认识就是需要知道本地仓库?建议一个项目单独指定本地仓库地址。
我们为什么使用maven来创建工程呢?
首先,maven是一个优秀的项目构建工具。使用maven,可以很方便的对项目进行分模块构建,这样在开发和测试打包部署时,效率会提高很多。
其次,maven可以进行依赖的管理。使用maven,可以将不同系统的依赖进行统一管理,并且可以进行依赖之间的传递和继承。
4.1设置天上人间商城Maven本地仓库
使用eclipse mars2自带的maven插件,但是maven版本是3.3.9,指定天上人间商城专用本地仓库地址。
如果不能联网,可以将以下仓库压缩包解压,然后拷贝repository目录中的内容到自己的本地仓库位置,比如我的本地仓库:E:\08-repo\02-tsrj\repository
4.2Maven工程结构
|--tsrj-parent(父工程,主要管理依赖版本,不真实添加依赖,打包类型POM)
|--tsrj-common(通用工具类工程,jar)
|--tsrj-manager(后台管理系统,聚合工程POM)
|--tsrj-manager-pojo(实体类工程,jar)
|--tsrj-manager-dao(持久层工程,jar)
|--tsrj-manager-interface(服务层工程,jar)
|--tsrj-manager-service(服务实现类工程,jar)
|--tsrj-manager-web(表现层工程,war)
为什么需要tsrj-parent工程?
为什么需要对tsrj-manager工程创建聚合工程,聚合工程的作用是什么?
可以提高子模块的可重用性。
4.3搭建tsrj-parent
作用:使用dependencyManagement标签统一管理依赖版本号。
4.3.1POM文件
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.4搭建tsrj-common
4.4.1POM文件
4.5搭建tsrj-manager
tsrj-manager工程是一个聚合工程,也就是POM工程。
4.5.1创建聚合工程
4.5.2修改POM文件
要运行聚合工程,需要配置tomcat7的插件。
4.5.3创建tsrj-manager-pojo
创建聚合工程的子模块tsrj-manager-pojo工程。
第一步:右键点击tsrj-manager工程,new—>project
第二步:next
第三步:点击Finish,创建工程。
4.5.4创建tsrj-manager-dao
同tsrj-manager-pojo的创建
4.5.4.1POM文件
4.5.5创建tsrj-manager-interface
4.5.5.1POM文件
4.5.6创建tsrj-manager-service
4.5.6.1POM文件
4.5.7搭建tsrj-manager-web
4.5.7.1POM文件
4.5.7.2Web.xml
注意:使用maven创建的web工程,需要手动创建WEB-INF目录和web.xml文件(或使用eclipse自带工具生成)。
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="tsrj" version="2.5">
如果有的小伙伴是用的idea,下面的截图是在idea中的结构
最近想了下,打算写个电商(京东)的案例,从这篇开始,大概持续一个月左右,每天都会更新一部分,对于想做电商的同学肯定会有帮助,至于页面资料和源码,需要的同学可以私信我,之后我也会放在GitHub上,感谢大家的支持。