1、課程介紹
2、淘淘商城基本介紹
3、後臺管理系統工程結構與搭建
4、svn代碼管理
5、項目源碼與資料下載
6、參考文章php
一共14天課程
(1)第一天:電商行業的背景。淘淘商城的介紹。搭建項目工程。Svn的使用。
(2)次日:框架的整合。後臺管理商品列表的實現。分頁插件。
(3)第三天:後臺管理。商品添加。商品類目的選擇、圖片上傳、富文本編輯器的使用。
(4)第四天:商品規格的實現。
(5)第五天:商城前臺系統的搭建。首頁商品分類的展現。Jsonp。
(6)第六天:cms系統的實現。前臺大廣告位的展現。
(7)第七天:cms系統添加緩存。Redis。緩存同步。
(8)第八天:搜索功能的實現。使用solr實現搜索。
(9)第九天:商品詳情頁面的展現。
(10)第十天:單點登陸系統。Session共享。
(11)第十一天:購物車訂單系統的實現。
(12)第十二天:nginx。反向代理工具。
(13)第十三天:redis集羣的搭建、solr集羣的搭建。系統的部署。
(14)項目總結。html
(1)電商行業的背景。
(2)淘淘商城的介紹。
(3)工程項目的搭建。
(4)svn的使用。java
技術新
技術範圍廣
分佈式
高併發、集羣、負載均衡、高可用
海量數據
業務複雜
系統安全mysql
淘淘網上商城是一個綜合性的B2C平臺,相似京東商城、天貓商城。會員能夠在商城瀏覽商品、下訂單,以及參加各類活動。
管理員、運營能夠在平臺後臺管理系統中管理商品、訂單、會員等。
客服能夠在後臺管理系統中處理用戶的詢問以及投訴。nginx
3.1 系統功能圖git
3.2 功能描述
後臺管理系統:管理商品、訂單、類目、商品規格屬性、用戶管理以及內容發佈等功能。
前臺系統:用戶能夠在前臺系統中進行註冊、登陸、瀏覽商品、首頁、下單等操做。
會員系統:用戶能夠在該系統中查詢已下的訂單、收藏的商品、個人優惠券、團購等信息。
訂單系統:提供下單、查詢訂單、修改訂單狀態、定時處理訂單。
搜索系統:提供商品的搜索功能。
單點登陸系統:爲多個系統之間提供用戶登陸憑證以及查詢登陸用戶的信息。github
4.1 傳統架構web
思考:有什麼問題?
一、模塊之間耦合度過高,其中一個升級其餘都得升級
二、開發困難,各個團隊開發最後都要整合一塊兒
三、系統的擴展性差
四、不能靈活的進行分佈式部署。redis
4.2 分佈式系統架構spring
分佈式架構:
把系統按照模塊拆分紅多個子系統。
優勢:
一、把模塊拆分,使用接口通訊,下降模塊之間的耦合度。
二、把項目拆分紅若干個子項目,不一樣的團隊負責不一樣的子項目。
三、增長功能時只須要再增長一個子項目,調用其餘系統的接口就能夠。
四、能夠靈活的進行分佈式部署。
缺點:
系統之間交互須要使用遠程通訊,接口開發增長工做量。
Spring、SpringMVC、Mybatis(重點掌握)
JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本編輯器)、CSS+DIV(瞭解便可)
Redis(緩存服務器,重點掌握)
Solr(搜索,重點掌握)
httpclient(調用系統服務,重點掌握)
Mysql(重點掌握)
Nginx(web服務器,重點掌握)
idea
Maven 3.5
Tomcat 8.5.3
JDK 1.8
Mysql 5.7
Nginx 1.8.0
Redis 3.0.0
Win8 操做系統
SVN(版本管理)
Maven功能包括依賴管理、項目構建、工程聚合。工程類型包括pom、jar、war,具體功能請參考文章:https://www.cnblogs.com/WUXIAOCHANG/p/10784540.html
2.1 pom工程
(1)taotao-parent:
taotao-parent是整個項目的父工程,它是一個pom工程。用來作整個項目的版本控制,也就是項目中全部要使用到的jar包的版本都集中由父工程管理。這樣你在寫其餘工程pom文件中maven依賴時就不須要寫版本號了。固然全部的項目都要先繼承它才行。
(2)taotao-manager:
建立taotao-manager用來作聚合工程,它也是一個pom工程。建立四個model分別是taotao-manager-pojo,taotao-manager-dao,taotao-manager-service,taotao-manager-web,同時會自動生成4個獨立的maven工程。聚合工程只是用來幫助其餘模塊構建的工具,自己並無實質的內容。具體每一個工程代碼的編寫仍是在生成的工程中去寫。
使用聚合工程taotao-manager的意義就是:本來這些模塊也是一個個獨立的工程,如今將它們聚合到taotao-manager中,這樣咱們構建項目的時候就只要構建taotao-manager一個就好了。咱們只要使用maven構建這個聚合工程taotao-manager就好了而不用去操心模塊的構建,好比install時只要install taotao-manager就行。總之就是簡化操做。正常的編碼工做仍是在對應的taotao-manager-pojo,taotao-manager-dao,taotao-manager-service,taotao-manager-web。工程中進行的。
2.2 war工程
(1)taotao-rest,taotao-portal這些
這些工程都是要部署在服務器上的,因此要打包成war形式。這些工程有的是用戶經過瀏覽器直接訪問,有的是經過發佈服務被別的工程調用。
2.3 jar工程
(1)taotao-common
這個就是打包成jar的工程。它就是存放一些其餘工程都會使用的類,工具類。咱們能夠在其餘工程的pom文件中去引用它,和引用別的jar包沒什麼區別。
4.1 配置idea的maven地址
4.2 建立 taotao-parent項目
taotao-parent項目是整個商場的父項目,用於定義各個maven依賴的版本和配置tomcat插件及jdk版本,不編寫任何實際代碼
建立後項目結構以下
修改pom.xml文件代碼以下:
<project xmlns="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"> <modelVersion>4.0.0</modelVersion> <groupId>com.wxc</groupId> <artifactId>taotao-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <!--1.pom工程:用在父級工程或聚合工程中。用來作jar包的版本控制。 2.war工程:將會打包成war,發佈在服務器上的工程。如網站或服務。 3.jar工程:將會打包成jar用做jar包使用。--> <packaging>pom</packaging> <!-- 集中定義依賴版本號 --> <properties> <junit.version>4.12</junit.version> <spring.version>4.1.3.RELEASE</spring.version> <mybatis.version>3.2.8</mybatis.version> <mybatis.spring.version>1.2.2</mybatis.spring.version> <mybatis.paginator.version>1.2.15</mybatis.paginator.version> <mysql.version>5.1.32</mysql.version> <slf4j.version>1.6.4</slf4j.version> <jackson.version>2.4.2</jackson.version> <druid.version>1.0.9</druid.version> <httpclient.version>4.3.5</httpclient.version> <jstl.version>1.2</jstl.version> <servlet-api.version>2.5</servlet-api.version> <jsp-api.version>2.0</jsp-api.version> <joda-time.version>2.5</joda-time.version> <commons-lang3.version>3.3.2</commons-lang3.version> <commons-io.version>1.3.2</commons-io.version> <commons-net.version>3.3</commons-net.version> <pagehelper.version>3.4.2-fix</pagehelper.version> <jsqlparser.version>0.9.1</jsqlparser.version> <commons-fileupload.version>1.3.1</commons-fileupload.version> <jedis.version>2.7.2</jedis.version> <solrj.version>4.10.3</solrj.version> </properties> <!--只是定義版本,並未添加實際依賴--> <dependencyManagement> <dependencies> <!-- 時間操做組件 --> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>${joda-time.version}</version> </dependency> <!-- Apache工具組件 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons-lang3.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-io</artifactId> <version>${commons-io.version}</version> </dependency> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>${commons-net.version}</version> </dependency> <!-- Jackson Json處理工具包 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <!-- httpclient --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>${httpclient.version}</version> </dependency> <!-- 單元測試 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <!-- 日誌處理 -->