1. 程式人生 > >SSM專案之---淘淘商城(第一天)

SSM專案之---淘淘商城(第一天)

注:xx商城是培訓網站(itcast)出的SSM培訓視訊,使用的技術還是現在比較靠前的技術~原始碼會在以後陸續放出~想要原始碼以及視訊的小夥伴可以加本人qq,,272273581  (注:由於本人最近考研,所以不經常看qq,大家想要原始碼視訊的話,可以直接發郵件給我,我看到之後第一時間會把資料分享出去噠~)

有償連結(0.2rmb):https://www.fageka.com/Home/Index/sell?id=dGrkvL44247

或者在下面留言放郵箱,我用空就會把資料發給你們噠~

順便給個贊也是極好的~

 

視訊下載地址:http://download.csdn.net/detail/baidu_31657889/9715057

 

下載地址呀~嫌麻煩的直接加我qq唄嘿嘿嘿點選開啟連結

資料庫下載地址~

課程計劃

一共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、專案總結。

 

 

今天的內容:

1、電商行業的背景。

2、淘淘商城的介紹。

3、工程專案的搭建。

4、Svn的使用。

 

電商行業的模式:

B2B:企業到企業,商家到商家。代表:阿里巴巴、慧聰網。

B2C:商家到客戶。代表:京東、淘寶商城(B2B2C)。

C2C:客戶到客戶。淘寶集市。

O2O:線上到線下。

 

 

 

1.1 功能模組

 

 

 

 

 

 

1.1.1 功能描述

 

後臺管理系統:管理商品、訂單、類目、商品規格屬性、使用者管理以及內容釋出等功能。

前臺系統:使用者可以在前臺系統中進行註冊、登入、瀏覽商品、首頁、下單等操作。

會員系統:使用者可以在該系統中查詢已下的訂單、收藏的商品、我的優惠券、團購等資訊。

訂單系統:提供下單、查詢訂單、修改訂單狀態、定時處理訂單。

搜尋系統:提供商品的搜尋功能。

單點登入系統:為多個系統之間提供使用者登入憑證以及查詢登入使用者的資訊。

 

 

1.1.1 傳統架構

 

 

 

思考:有什麼問題?

1、 模組之間耦合度太高,其中一個升級其他都得升級

2、 開發困難,各個團隊開發最後都要整合一起

3、 系統的擴充套件性差

4、 不能靈活的進行分散式部署。

 

解決方法:

優點:

把模組拆分成獨立的工程,單點執行。如果某一個點壓力大可以對這一個點單獨增加配置。其他的點不受影響。

缺點:

系統之間互動需要額外的工作量來進行介面的開發。

 

把系統拆分成多個工程,要完成系統的工程需要多個工程協作完成。這種形式叫做分散式。

 

1.1.2 分散式的架構

 

分散式架構:

把系統按照模組拆分成多個子系統。

優點:

1、把模組拆分,使用介面通訊,降低模組之間的耦合度。

2、把專案拆分成若干個子專案,不同的團隊負責不同的子專案。

3、增加功能時只需要再增加一個子專案,呼叫其他系統的介面就可以。

4、可以靈活的進行分散式部署。

 

缺點:

系統之間互動需要使用遠端通訊,介面開發增加工作量。

 

 

 

1.1.1 技術選型(主要技術)

 

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伺服器)

1.1.2 開發工具和環境

Eclipse 4.5.0(Mars),自帶maven外掛,需要手工安裝svn外掛。

Maven 3.3.3(開發工具自帶)

Tomcat 7.0.53(Maven Tomcat Plugin)

JDK 1.7

Mysql 5.6

Nginx 1.8.0

Redis 3.0.0

Win7 作業系統

SVN(版本管理)

1.1 人員配置

產品經理:3人,確定需求以及給出產品原型圖。

專案經理:1人,專案管理。

前端團隊:5人,根據產品經理給出的原型製作靜態頁面。

後端團隊:20人,實現產品功能。

測試團隊:5人,測試所有的功能。

運維團隊:3人,專案的釋出以及維護。

 

後臺管理系統工程搭建

2.1 Maven

1、依賴管理、jar包、工程之間的依賴。

2、專案構建。實現專案的一步構建。

3、工程聚合、繼承、依賴。

 

2.2 Maven的工程型別:

1、war包工程

2、Jar包工程

3、Pom工程。

 

3  父工程的搭建

父工程應該是一個pom工程。在父工程中定義依賴的jar包的版本資訊。Maven外掛的版本。

3.1 建立maven工程

1.1.1 修改pom檔案

<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.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>

<!-- 日誌處理 -->

<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>

<dependency>

<groupId>com.github.miemiedev</groupId>

<artifactId>mybatis-paginator</artifactId>

<version>${mybatis.paginator.version}</version>

</dependency>

<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>

<!-- 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>

</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>

<plugins>

<!-- 配置Tomcat外掛 -->

<plugin>

<groupId>org.apache.tomcat.maven</groupId>

<artifactId>tomcat7-maven-plugin</artifactId>

<version>2.2</version>

</plugin>

</plugins>

</pluginManagement>

</build>

</project>

 

3.2建立一個common工程

也需要繼承taotao-parent工程。

 

3.2.1 建立工程

 

Pom檔案

<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>

<groupId>com.taotao</groupId>

<artifactId>taotao-common</artifactId>

<version>0.0.1-SNAPSHOT</version>

<!-- jar包的依賴 -->

<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>

<!-- 單元測試 -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<scope>test</scope>

</dependency>

<!-- 日誌處理 -->

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

</dependency>

</dependencies>

</project>

 

1.1 後臺管理工程建立

搭建一個聚合工程:

1.1.1 工程結構

傳統工程結構:

 

Maven管理的工程結構:

 

不使用maven:工程部署時需要手動複製jar包。完成工程構建。非常繁瑣。

使用maven進行工程構建:

使用maven可以實現一步構建。

 

後臺管理系統工程結構:

taotao-parent -- 管理依賴jar包的版本,全域性,公司級別

|--taotao-common  --- 通用元件、工具類

|--taotao-manage  -- 後臺系統

  |--com.taotao.manage.web

  |--com.taotao.manage.service

  |--com.taotao.manage.mapper

  |--com.taotao.manage.pojo

測試maven工程

4.1 執行的工程

要執行工程,需要執行聚合工程也就是taotao-manager。

 

 

4.1 Tomcat外掛

 

在taotao-manager工程的pom檔案中新增如下內容:

<build>

<!-- 配置外掛 -->

<plugins>

<plugin>

<groupId>org.apache.tomcat.maven</groupId>

<artifactId>tomcat7-maven-plugin</artifactId>

<configuration>

<port>8080</port>

<path>/</path>

</configuration>

</plugin>

</plugins>

</build>

 

1.2 啟動工程

使用maven命令:

clean tomcat7:run

tomcat7指定使用tomcat7的外掛。

 

注意:

1、需要把taotao-parent工程安裝到本地倉庫。Install

2、需要把taotao-common安裝到本地倉庫。