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唄嘿嘿嘿點選開啟連結
1 課程計劃
一共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 後臺管理系統工程搭建
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
4 測試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安裝到本地倉庫。