課程計划
- 第一天:
- 1、電商行業的背景介紹--電子商務
- 2、淘淘商城的系統架構
- a) 功能介紹
- b) 架構講解
- 3、工程搭建--后台工程
- a) 使用maven搭建工程(工程大)
- b) 使用maven的tomcat插件啟動工程
- 4、SVN的使用
- 第二天:
- 1、服務中間件dubbo--遠程調用技術
- 2、SSM框架整合
- 3、整合測試
- 4、商品列表查詢功能實現
- 第三天:
- 1、商品類目選擇
- 2、圖片上傳
- a) 圖片服務器FastDFS
- b) 圖片上傳功能實現
- 3、富文本編輯器KindEditor的使用
- 4、商品添加功能完成
- 第四天:
- 1、前台系統搭建
- 2、CMS系統的實現--內容管理系統
- a) 內容分類管理
- b) 內容管理
- 3、前台內容動態展示
- 第五天:
- 1、Redis服務器搭建--緩存
- 2、向業務邏輯中添加緩存
- 3、使用redis做緩存
- 4、緩存同步
- 5、Solr服務器安裝--搜索
- 第六天:
- 1、Solrj使用測試--Solr服務的java客戶端
- 2、把數據庫中的數據導入索引庫
- 3、搜索功能的實現
- 第七天:
- 1、Solr集群搭建--SlorCloud
- 2、使用solrj管理solr集群
- 3、把搜索功能切換到集群版
- 第八天:
- 1、什么是MQ--消息隊列
- 2、MQ的應用場景
- 3、ActiveMQ的使用方法
- 4、使用消息隊列實現商品同步
- 第九天:
- 1、商品詳情頁面展示--動態展示 jsp + redis
- 2、使用freemarker實現網頁靜態化
- 3、ActiveMq同步生成靜態網頁
- 第十天:
- 1、Nginx的安裝--訪問靜態資源
- 2、Nginx配置虛擬機
- 3、Nginx實現反向代理
- 4、Nginx實現負載均衡
- 5、SSO系統工程搭建--單點登錄系統
- 第十一天:
- 1、SSO注冊功能實現
- 2、SSO登錄功能實現
- 3、通過token獲得用戶信息
- 4、Ajax跨域請求(jsonp)
- 第十二天:
- 1、購物車實現
- 2、訂單確認頁面展示
- 第十三天:
- 1、訂單系統完成
- 2、系統部署--上線流程
- 第十四天~十六天:
- 項目實戰--需求、分組、實現
- 項目總結
1、電商行業的背景介紹--電子商務
近年來,中國的電子商務快速發展,交易額連創新高,電子商務在各領域的應用不斷拓展和深化、相關服務業蓬勃發展、支撐體系不斷健全完善、創新的動力和能力 不斷增強。電子商務正在與實體經濟深度融合,進入規模性發展階段,對經濟社會生活的影響不斷增大,正成為我國經濟發展的新引擎。
中國電子商務研究中心數據顯示,截止到2012年底,中國電子商務市場交易規模達7.85萬億人民幣,同比增長30.83%。其中,B2B電子商務交易額達6.25萬億,同比增長27%。而2011年全年,中國電子商務市場交易額達6萬億人民幣,同比增長33%,占GDP比重上升到13%;2012年,電子商務占GDP的比重已經高達15%。預計2013年我國電子商務規模將突破十萬億大關。

1.1、11.11

- 結論:
- 1、電商行業很掙錢,找互聯網相關的工作。
- 2、電商行業技術要求很高、高可用、海量數據的存儲。
1.2、電商行業技術特點
- 技術新
- 技術范圍廣
- 分布式
- 高並發、集群、負載均衡、高可用
- 海量數據
- 業務復雜
- 系統安全
2、淘淘商城的系統架構
2.1、淘淘商城介紹
淘淘網上商城是一個綜合性的B2C平台,類似京東商城、天貓商城。會員可以在商城瀏覽商品、下訂單,以及參加各種活動。
管理員、運營可以在平台后台管理系統中管理商品、訂單、會員等。
客服可以在后台管理系統中處理用戶的詢問以及投訴。
- 電商模式:
- B2B:商家到商家。阿里巴巴、1688(批發)、慧聰網、銘萬網。
- B2C:商家(京東)到用戶。京東(自營)。
- C2C:用戶到用戶。淘寶(趕集)。
- B2B2C:商家(天貓)到商家(耐克)到用戶。天貓(開發票)。
- O2O:線上到線下。百度外賣、美團外賣、餓了么。
2.2、功能介紹

- 后台管理系統:管理商品、訂單、類目、商品規格屬性、用戶管理以及內容發布等功能。
- 前台系統:用戶可以在前台系統中進行注冊、登錄、瀏覽商品、首頁、下單等操作。
- 會員系統:用戶可以在該系統中查詢已下的訂單、收藏的商品、我的優惠券、團購等信息。
- 訂單系統:提供下單、查詢訂單、修改訂單狀態、定時處理訂單。
- 搜索系統:提供商品的搜索功能。
- 單點登錄系統:為多個系統之間提供用戶登錄憑證以及查詢登錄用戶的信息。
2.3、系統架構
2.3.1、傳統架構

- 存在的問題:
- 1、功能耦合度高
- 2、系統維護成本高
- 3、如果並發量大,無法解決高並發的問題
2.3.2、1000個並發

- 存在的問題:
- 1、系統無法有效進行水平擴展(集群不能針對功能模塊)
- 2、用戶存在重復登錄的問題
- 針對第二點:需要session共享,是以session廣播的形式,比較消耗資源(寬帶)。
- 如果要達到10000並發
- 需要20台服務器做tomcat集群。
- 注意:當tomcat集群中節點數量增加,服務能力先增加后下降。所以集群中節點數量不能太多,一般也就`5個`左右。
2.3.3、分布式架構(10000個並發)
- 需要按照功能點把系統
拆分
,拆分成獨立的功能。單獨為某一個節點添加服務器。需要系統之間配合才能完成整個業務邏輯。叫做分布式
。 - 分布式架構:多個子系統相互協作才能完成業務流程。系統之間需要進行
通信
。 - 集群:
同一個工程部署到多台服務器上
。相當於同一個工程代碼拷貝多份部署到多台服務器,每台服務器單獨獨立部署運行。 - 分布式架構:
- 把系統按照模塊拆分成多個子系統,多個子系統相互協作才能完成業務流程系統之間需要進行通信。
- 優點:
- 1、把模塊拆分,`使用接口通信`,`降低`模塊之間的`耦合度`。
- 2、把項目拆分成若干個子項目,不同的團隊負責不同的子項目。
- 3、增加功能時只需要再增加一個子項目,調用其他系統的接口就可以。
- 4、可以`靈活`的進行分布式`部署`。
- 缺點:
- 1、系統之間交互需要使用遠程通信,接口開發`增加工作量`。
- 2、各個模塊有一些通用的`業務邏輯無法共用`。
2.3.4、基於SOA的架構
SOA:Service Oriented Architecture
面向服務的架構
。也就是把工程拆分成服務層
、表現層
兩個工程。服務層中包含業務邏輯,只需要對外提供服務即可。表現層只需要處理和頁面的交互,業務邏輯都是調用服務層的服務來實現。

2.3.5、淘淘商城系統架構

3、技術選型和開發環境
3.1、技術選型
- Spring、SpringMVC、Mybatis
- JSP、JSTL、jQuery、EasyUI、KindEditor(富文本編輯器)
- Redis(緩存服務器,單點登錄,購物車)
- Solr(全文搜索)
- dubbo(分布式服務框架)
- HttpClient(HTTP 協議訪問客戶端)
- ActiveMQ(消息隊列)
- Quartz(定時任務)
- FastDFS(圖片服務器)
- FreeMarker(網頁靜態化)
- Nginx(反向代理服務器)
- MyCat(數據庫中間件)
3.2、開發工具版本和環境
- Eclipse Mars.2 Release (4.5.2)
- Maven 3.5.4
- Tomcat 7.0.47(Maven Tomcat Plugin)
- JDK 1.7
- Mysql 5.7
- Dubbo 2.5.3
- Nginx 1.8.0
- Redis 3.0.0
- ActiveMQ 5.13.0
- Win10 操作系統
- SVN (版本管理)
4、工程搭建--后台工程
4.1、使用maven的好處
- 使用maven管理工程的好處如下:
- 1) jar包的管理
- 2) 工程之間的依賴管理
- 3) 自動打包
- 4) 統一的版本的控制
4.2、后台工程搭建分析
詳解如下:
Maven的常見打包方式:jar、war、pom
pom工程一般都是父工程,管理jar包的版本、maven插件的版本、統一的依賴管理。聚合工程。
taotao-parent:父工程,打包方式pom,管理jar包的版本號。
| 項目中所有工程都應該繼承父工程。
|--taotao-common:通用的工具類、通用的pojo。打包方式jar
|--taotao-manager:服務層工程。聚合工程。pom工程
|--taotao-manager-pojo:打包方式jar
|--taotao-manager-dao:打包方式jar
|--taotao-manager-interface:打包方式jar
|--taotao-manager-service:打包方式war (為了發布服務的方便)
|--taotao-manager-web:表現層工程。打包方式war
4.3、工程搭建
Maven相關配置:
- M2Eclipse是eclipse中的Maven插件。(低版本的ecplise需要手動安裝,高版本的eclipse自帶,本博主用的是高版本的ecplise)
- M2Eclipse是MyEclipse中自帶的Maven插件。
- 注意:
- 如果我們單獨用命令行的方式進行maven的使用時,我們用戶的配置文件默認在~/.m2/setting.xml
- 如果我們使用Eclipse或者MyEclipse的方式進行maven的使用時,我們用戶的配置文件可以想放哪里就放哪里,只需要指定配置文件的路徑即可。
- 注意:
- 本地倉庫目錄:默認位置在:~/.m2/repository
- 因為我們使用eclipse開發,所以我們把本地倉庫放到我們安排好的目錄中,需要在eclipse中指定用戶的配置文件路徑即可。如下圖:
- 本地倉庫的使用,我們既可以提前下好所需要的jar包,也可以邊開發邊聯網下載!
Eclipse相關配置:
- eclipse 設置默認編碼為Utf-8
- 需要設置的幾處地方為:
- Window --> Preferences --> General --> Content Type --> Text --> JSP 最下面設置為UTF-8
- Window --> Preferences --> General --> Workspace 面板Text file encoding 選擇UTF-8
- Window --> Preferences --> Web --> JSP Files 面板選擇 ISO 10646/Unicode(UTF-8)
- Window --> Preferences --> General --> Workspace 面板 New text file line delimiter 選擇 Unix
4.3.1、taotao-parent
- 父工程必須是pom工程。
- 創建步驟如下:
(1)
(2)
(3)
- 創建步驟如下:
- 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.taotao</groupId>
<artifactId>taotao-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<!-- 集中定義依賴版本號 -->
<properties>
<junit.version>4.12</junit.version>
<spring.version>4.2.4.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>
<dubbo.version>2.5.3</dubbo.version>
<zookeeper.version>3.4.7</zookeeper.version>
<zkclient.version>0.1</zkclient.version>
<activemq.version>5.13.0</activemq.version>
<freemarker.version>2.3.23</freemarker.version>
<quartz.version>2.2.2</quartz.version>
</properties>
<!-- 統一依賴jar包版本的管理, 其下的標簽dependencies只是版本的管理,並不是依賴jar包-->
<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>
<!-- quartz任務調度框架 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>${quartz.version}</version>
</dependency>
<!-- 單元測試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope><!-- test表示該范圍傳遞不到下面去 -->
</dependency>
<!-- 日志處理 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.spring.version}</version>
</dependency>
<!-- mybatis分頁 相關的,暫時沒有用到 -->
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>${mybatis.paginator.version}</version>
</dependency>
<!-- 分頁插件pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- 連接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- JSP相關 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>${jstl.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet-api.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>${jsp-api.version}</version>
<scope>provided</scope>
</dependency>
<!-- 文件上傳組件 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons-fileupload.version}</version>
</dependency>
<!-- Redis客戶端 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>${jedis.version}</version>
</dependency>
<!-- solr客戶端 -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>${solrj.version}</version>
</dependency>
<!-- dubbo相關 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>${dubbo.version}</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>${zookeeper.version}</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>${zkclient.version}</version>
</dependency>
<!-- activemq -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>${activemq.version}</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>${freemarker.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- 資源文件拷貝插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- java編譯插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<!-- 統一插件版本的管理,pluginManagement是控制版本的,如果在子工程要使用該插件,需要在子工程中再配置坐標 -->
<pluginManagement>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
<!-- 配置打包時跳過測試 ,首次配置使用的時候會自動聯網進行下載 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
4.3.2、taotao-common
- taotao-common:是通用的工具類、通用的pojo。打包方式jar。需要繼承父工程。
- 新建一個Maven Project,不使用骨架進行創建該工程。
- 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>
<parent>
<groupId>com.taotao</groupId>
<artifactId>taotao-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>taotao-common</artifactId>
<dependencies>
<!-- 時間操作組件 -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
<!-- Apache工具組件 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
</dependency>
<!-- Jackson Json處理工具包 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!-- httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<!-- quartz任務調度框架 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
</dependency>
<!-- 單元測試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope><!-- test表示該范圍傳遞不到下面去 -->
</dependency>
<!-- 日志處理 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
</dependencies>
</project>
4.3.3、taotao-manager
- taotao-manager:是聚合工程。打包方式pom。需要繼承父工程。
- 新建一個Maven Project,不使用骨架進行創建該工程。
- 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>
<parent>
<groupId>com.taotao</groupId>
<artifactId>taotao-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>taotao-manager</artifactId>
<packaging>pom</packaging>
<dependencies>
<!-- 配置對taotao-common的依賴-->
<dependency>
<groupId>com.taotao</groupId>
<artifactId>taotao-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
4.3.4、taotao-manager-pojo
- taotao-manager-pojo:是一個Maven模塊工程,打包方式jar。
- 新建一個Maven 模塊工程,不使用骨架進行創建該工程。過程同下圖。不再贅述!
- 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>
<parent>
<groupId>com.taotao</groupId>
<artifactId>taotao-manager</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>taotao-manager-pojo</artifactId>
</project>
4.3.5、taotao-manager-dao
- taotao-manager-dao:是一個Maven模塊工程,打包方式jar。
- 新建一個Maven 模塊工程,不使用骨架進行創建該工程。
- 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>
<parent>
<groupId>com.taotao</groupId>
<artifactId>taotao-manager</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>taotao-manager-dao</artifactId>
<dependencies>
<!-- 配置對taotao-manager-pojo的依賴 -->
<dependency>
<groupId>com.taotao</groupId>
<artifactId>taotao-manager-pojo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 配置對mybatis的依賴 -->
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</dependency>
<!-- mybatis分頁 相關的,暫時沒有用到 -->
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
</dependency>
<!-- 分頁插件pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 連接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
</dependencies>
</project>
4.3.6、taotao-manager-interface
- taotao-manager-interface:是一個Maven模塊工程,打包方式jar。
- 新建一個Maven 模塊工程,不使用骨架進行創建該工程。過程同上圖。不再贅述!
- 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>
<parent>
<groupId>com.taotao</groupId>
<artifactId>taotao-manager</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>taotao-manager-interface</artifactId>
<dependencies>
<!-- 配置對taotao-manager-pojo的依賴 -->
<dependency>
<groupId>com.taotao</groupId>
<artifactId>taotao-manager-pojo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
4.3.7、taotao-manager-service
- taotao-manager-service:是一個Maven模塊工程,注意:
打包方式war
。 - 新建一個Maven 模塊工程,不使用骨架進行創建該工程。過程同上圖。不再贅述!
- 注意:需要在目錄webapp下補齊所缺的目錄WEB-INF和文件web.xml
- 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>
<parent>
<groupId>com.taotao</groupId>
<artifactId>taotao-manager</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>taotao-manager-service</artifactId>
<packaging>war</packaging>
<dependencies>
<!-- 配置對taotao-manager-dao的依賴 -->
<dependency>
<groupId>com.taotao</groupId>
<artifactId>taotao-manager-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 配置對taotao-manager-interface的依賴:服務層發布服務要通過該接口 -->
<dependency>
<groupId>com.taotao</groupId>
<artifactId>taotao-manager-interface</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 配置對spring的依賴 -->
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
</dependencies>
</project>
- web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>taotao-manager-service</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 暫時不需要配置什么東西 -->
</web-app>
4.3.8、taotao-manager-web
- taotao-manager-web:是一個Maven工程,注意:
打包方式war
。需要繼承父工程。 - 新建一個Maven工程,不使用骨架進行創建該工程。過程同上圖。不再贅述!
- 注意:需要在目錄webapp下補齊所缺的目錄WEB-INF和文件web.xml
- 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>
<parent>
<groupId>com.taotao</groupId>
<artifactId>taotao-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>taotao-manager-web</artifactId>
<packaging>war</packaging>
<dependencies>
<!-- 配置對taotao-common的依賴-->
<dependency>
<groupId>com.taotao</groupId>
<artifactId>taotao-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 配置對taotao-manager-interface的依賴:表現層調用服務要通過該接口 -->
<dependency>
<groupId>com.taotao</groupId>
<artifactId>taotao-manager-interface</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 配置對spring的依賴 -->
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<!-- JSP相關 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- 文件上傳組件 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
</dependencies>
</project>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>taotao-manager-web</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 暫時不需要配置什么東西 -->
</web-app>
4.4、使用maven的tomcat插件啟動web工程
- 啟動taotao-manager-web工程。
- 需要在taotao-manager-web工程的pom中,配置tomcat插件。配置啟動的端口號和工程名稱。
- 在taotao-manager-web的pom文件中添加如下配置:
- pom.xml
<build>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8081</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
- 在taotao-manager-web工程的webapp目錄下新建啟動首頁jsp文件index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>hello 淘淘商城</h1>
</body>
</html>
- 先把工程taotao-parent、taotao-common安裝到本地倉庫中。然后再啟動tomcat插件。否則會報如下錯誤:
- 右鍵項目taotao-parent --> Run As --> Maven install
- 右鍵項目taotao-common --> Run As --> Maven install
- 選中工程taotao-manager-web,再啟動tomcat插件:
- 選中項目右鍵--> Run As --> Maven build… --> 在Goals中輸入:clean tomcat7:run
- 測試:訪問地址:http://localhost:8081/
4.5、使用maven的tomcat插件啟動聚合工程
- 由於聚合工程taotao-manager也是web工程(聚合工程中有web工程),所以它的啟動該是怎樣的呢?
- 由於聚合工程taotao-manager沒有表現層,但我們也打成了一個war包,我們是該運行聚合工程taotao-manager的整體?還是運行其中的web工程taotao-manager-service呢?
- 答:運行他們兩個都可以,但是不建議運行聚合工程中的web工程taotao-manager-service,因為運行該工程需要依賴dao,dao依賴pojo,這些依賴需要先安裝至本地倉庫中,該工程才可以運行,如果dao更改一下,taotao-manager-service想運行就需要重新安裝至本地倉庫,很麻煩!所以我們直接運行聚合工程taotao-manager該多好呢!聚合工程taotao-manager知道自己的里面有什么模塊,它會把這幾個模塊打成一個war包運行。
- 那么下面我們使用maven的tomcat插件啟動聚合工程:
- 需要在taotao-manager工程的pom中,配置tomcat插件。配置啟動的端口號和工程名稱。
- 在聚合工程taotao-manager的pom文件中添加如下配置:
- pom.xml
<build>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
- 在taotao-manager-service工程的webapp目錄下新建啟動首頁jsp文件index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>hello 淘淘商城</h1>
</body>
</html>
- 先把工程taotao-parent、taotao-common安裝到本地倉庫中。然后再啟動tomcat插件。
- 右鍵項目taotao-parent --> Run As --> Maven install
- 右鍵項目taotao-common --> Run As --> Maven install
- 選中工程taotao-manager,再啟動tomcat插件:
- 選中項目右鍵--> Run As --> Maven build… --> 在Goals中輸入:clean tomcat7:run
- 測試:訪問地址:http://localhost:8080/
5、SVN的使用
5.1、SVN服務端
- SVN服務端使用VisualSVN,一般一個項目組只有一個svn,並不是每個開發者都需要安裝服務端。
- windows版本的安裝可參考鏈接:https://www.cnblogs.com/chenmingjun/p/9916910.html
- VisualSVN Server 的使用圖解(windows版本)參考鏈接:https://www.cnblogs.com/chenmingjun/p/9926589.html
5.2、SVN客戶端
- 客戶端使用Eclipse的svn插件,在提供的Eclipse中已經安裝好,直接使用即可。
- 如果想自己安裝:可參考鏈接:https://www.cnblogs.com/chenmingjun/p/9459401.html
- 訪問地址:https://DESKTOP-TEE3ASS:8443/svn/taotao-hm28/
- https://{svn服務ip地址}/svn/{倉庫名稱}/
- SVN 客戶端的使用參考鏈接:https://www.cnblogs.com/chenmingjun/p/9926849.html