1. 程式人生 > >商城專案(ssm+dubbo+nginx+mysql統合專案)總結(1)

商城專案(ssm+dubbo+nginx+mysql統合專案)總結(1)

我不會在這裡貼程式碼和詳細步驟什麼的,我覺得就算我把它貼出來,你們照著步驟做還是會出很多問題,我推薦你們去看一下黑馬的這個視訊,我個人感覺很不錯,一步一步走下來可以學到很多東西。另外,視訊和相關文件的話,關注微信公眾號“Java面試通關手冊”回覆“資源分享第一波”即可領取.

本節內容具體可參考黑馬該專案第四天的教案,教案以及相關文件和資料都在分享的網盤裡面,下載解壓即可。

我這裡主要總結一下自己學到的東西和遇到的坑。我和老師的開發環境有所不同。先說一下我的開發環境把!

開發環境

作業系統windows10
開發軟體Myeclipse2017
tomcat:Tomcat7外掛
Maven

: apache-maven-3.5.0
Linux作業系統我選擇的是Centos7,Centos7和老師用的Centos6.5還是有很大區別的。

第一天學習的內容

1、電商行業的背景。

這個就不用多提了。

2、宜立方商城的系統架構

宜立方商城介紹:

宜立方網上商城是一個綜合性的B2C平臺,類似京東商城、天貓商城。會員可以在商城瀏覽商品、下訂單,以及參加各種活動。
管理員、運營可以在平臺後臺管理系統中管理商品、訂單、會員等。
客服可以在後臺管理系統中處理使用者的詢問以及投訴。

架構講解

通過一個小故事帶大家看一下這幾年架構的變化:

“傳統架構”:很多年前,剛學完JavaWeb開發的我憑藉一人之力就開發了一個網站,網站 所有的功能和應用都集中在一起,方便了我的開發同時也節省了成本。但是後來我的網站訪問流量突然加大,我通過不斷增加伺服器來提高併發量,但是我發現隨著伺服器的增加服務能力先增加後下降。
不能通過硬體的方式解決問題的我,思考如何通過軟體解決這個問題。

“分散式架構”:後來我按照功能點把系統拆分,拆分成獨立的功能。單獨為某一個節點新增伺服器。通過系統之間配合完成整個業務邏輯。但是隨著我的網站功能的日益完善,我發現各個模組有一些通用的業務邏輯無法共用,這樣可不好,這時候我就在考慮為啥部直接來個面向服務呢???

“面向服務架構”:我把工程拆分成服務層、表現層兩個工程。服務層中包含業務邏輯,只需要對外提供服務即可。表現層只需要處理和頁面的互動,業務邏輯都是呼叫服務層的服務來實現。這樣我的網站不光開發效率快,而且在擴充套件和升級相關服務的時候更加靈活。

宜立方商城系統架構

宜立方商城系統架構

一些名詞簡單介紹:

Dubbo(開源分散式服務框架):

Dubbo是 [1] 阿里巴巴公司開源的一個高效能優秀的服務框架,使得應用可通過高效能的 RPC 實現服務的輸出和輸入功能,可以和 [2] Spring框架無縫整合。
官網:http://dubbo.incubator.apache.org/

Mycat: Mycat是一個開源的分散式資料庫系統,其核心功能是分表分庫,即將一個大表水平分割為多個小表,儲存在後端MySQL或者其他資料庫裡。取名Mycat原因一是簡單好記,另一個則是希望未來能夠入駐 Apache,Apache的開源產品Tomcat也是一隻貓。

訊息佇列:在電腦科學中,訊息佇列(英語:Message queue)是一種程序間通訊或同一程序的不同執行緒間的通訊方式,軟體的貯列用來處理一系列的輸入,通常是來自使用者。訊息佇列提供了非同步的通訊協議,每一個貯列中的紀錄包含詳細說明的資料,包含發生的時間,輸入裝置的種類,以及特定的輸入引數,也就是說:訊息的傳送者和接收者不需要同時與訊息佇列互動。訊息會儲存在佇列中,直到接收者取回它。[1]

Apache ActiveMQ:Apache ActiveMQ是Apache軟體基金會所研發的開放原始碼訊息中介軟體;由於ActiveMQ是一個純Java程式,因此只需要作業系統支援Java虛擬機器,ActiveMQ便可執行。

3、工程搭建-後臺工程

a) 使用maven搭建工程
Maven的常見打包方式:jar、war、pom
Pom工程一般都是父工程,管理jar包的版本、maven外掛的版本、統一的依賴管理。聚合工程。
第一天搭建好的工程,結構如下

搭建的具體方式我這裡就不說了,附帶視訊提供的文件有很詳細的步驟,建議一步一步做,這樣才會發現很多問題,解決問題的過程才能進步。
b) 使用maven的tomcat外掛啟動工程

    <!-- 配置tomcat外掛 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <path>/</path>
                    <port>8081</port>
                </configuration>
            </plugin>
        </plugins>
    </build>

4、SSM框架整合

這裡需要注意的是:Mybatis逆向工程的使用SpringMVC的三大元件以及SSM整合的正確姿勢

5、svn的使用。

現在公司大多用git,所以我覺得這個東西大家瞭解瞭解就好

學到東西

基於SOA服務的工程專案的搭建

SSM框架整合

Maven的使用進階(Tomcat外掛的使用,一些基本命令:Tomcat7:run等等的使用。)

Spring三大元件
Spring三大元件

第一天遇到的問題

1.Missing artifact com.github.pagehelper:pagehelper:jar:3.4.2-fix

pagehelper包用的不是官方的,這裡用的是老師改過的,所以你需要把這個專案匯入然後執行 命令:
pagehelper包下載
pagehelper包所在位置:
pagehelper包所在位置

2.使用maven的tomcat外掛啟動時報錯問題

使用maven的tomcat外掛啟動時報錯問題
通過tomcat7:run命令來執行時出現的問題,問題的原因大概是無法啟動Tomcat7外掛,這個問題我解決了很長時間,當時很糾結,因為我的另一個專案可以使用tomcat7:run命令來執行,但是這個卻不行。所以,我重新又建了一遍專案,然後把前面的流程走了一遍,之後還是同樣的問題,然後第二天忘記怎麼弄的就好了,不知道和重啟有關係嗎?

3.The import org.springframework.beans.factory.annotation.Autowired cannot be resolved(無法使用註解的問題)

更改Spring的版本號為:4.2.7。問題就解決了。

4. How to fix java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet Exception – Spring MVC, Tomcat and 404 Error

5.maven編譯時出現讀取XXX時出錯invalid LOC header (bad signature)

這個原因是你的jar包下載出錯,查看出錯的jar包,到你的Maven倉庫刪除後重新下載即可。

當然還有一些很小的問題我這裡就不提了。。。

歡迎關注我的微信公眾號:“”Java面試通關手冊(堅持原創,分享美文,分享各種Java學習資源,面試題,以及企業級Java實戰專案回覆關鍵字免費領取):
微信公眾號

相關推薦

商城專案ssm+dubbo+nginx+mysql統合專案總結4

我不會在這裡貼程式碼和詳細步驟什麼的,我覺得就算我把它貼出來,你們照著步驟做還是會出很多問題,我推薦你們去看一下黑馬的這個視訊,我個人感覺很不錯,一步一步走下來可以學到很多東西。另外,視訊和相關文件的話,關注微信公眾號“Java面試通關手冊”回覆“資源分享第一波

商城專案ssm+dubbo+nginx+mysql統合專案總結3

我不會在這裡貼程式碼和詳細步驟什麼的,我覺得就算我把它貼出來,你們照著步驟做還是會出很多問題,我推薦你們去看一下黑馬的這個視訊,我個人感覺很不錯,一步一步走下來可以學到很多東西。另外,視訊和相關文件的話,關注微信公眾號“Java面試通關手冊”回覆“資源分享第一波

商城專案ssm+dubbo+nginx+mysql統合專案總結1

我不會在這裡貼程式碼和詳細步驟什麼的,我覺得就算我把它貼出來,你們照著步驟做還是會出很多問題,我推薦你們去看一下黑馬的這個視訊,我個人感覺很不錯,一步一步走下來可以學到很多東西。另外,視訊和相關文件的話,關注微信公眾號“Java面試通關手冊”回覆“資源分享第一波

部署社交網站SVN+PHP+NGINX+MYSQL+MFS

word dir ESS 目錄 支持php create make 控制 vpd 案例需求:社交網站采用PHP語言開發,為了管理開發代碼,搭建SVN服務器進行版本控制,社交網站的第一個版本部署在LNMP平臺上,前端為nginx服務器,通過fastcgi協議訪問後端的PHP服

mac開發環境爬坑記搭建php+nginx+mysql+redis+laravel+git+phpstorm

題外話:前幾天,終於以原價一半的價格,將我那臺15版mbp在bss上賣了出去。之所以用了“終於”這個詞兒,是我一直遲遲沒有下定決心賣掉它,可眼瞅著再不賣掉,又要掉價,況且我的新電腦,也終於下來了。 話說這個mbp,我還真沒用多少,原因是剛買完沒多久,公司電腦就下來了,加上當年各種軟體都缺少mac版,用起來各

SSM框架開發專案--用到的註解記錄,及詳解。先記錄,後研究,再總結---未完

@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) //保證序列化json的時候,如果是null的物件,key也會消失 public c

windows下安裝mysqlmysql-installer-community-5.6.10.1

自動 選擇 devel 界面 mysql-in for 選項 需要 acc 轉載 2015年06月07日 18:22:57 轉載自:http://blog.sina.com.cn/s/blog_7cecec9501017cmk.html 一、安裝前的準備

nginx+php整合是讓nginx可以執行php,以及下載地址

下載地址: nginx:http://nginx.org/en/download.html PHP: https://windows.php.net/download/ 都是官網的自己選擇版本 安裝檔案目錄: nginx: D:\wcnm\Nginx\nginx-12 

MySql高效能優化實戰總結Linux

MySQL對於很多Linux從業者而言,是一個非常棘手的問題,多數情況都是因為對資料庫出現問題的情 況和處理思路不清晰。在進行MySQL的優化之前必須要了解的就是MySQL的查詢過程,很多的查詢優 化工作實際上就是遵循一些原則讓MySQL的優化器能夠按照預想的

MySQL/Oracle資料庫優化總結非常全面

MySQL資料庫優化的八種方式(經典必看) 引言: 關於資料庫優化,網上有不少資料和方法,但是不少質量參差不齊,有些總結的不夠到位,內容冗雜 偶爾發現了這篇文章,總結得很經典,文章流量也很大,所以拿到自己的總結文集中,積累優質文章,提升個人

Oozie安裝時放置Mysql驅動包的總結網上最全

  不多說,直接上乾貨! 對於在oozie裡放置Mysql驅動包的總結   根據網上的參考以及我個人經驗安裝的使用   (1)放一份到$OOZIE_HOME/libext下 (是 mysql-connector-java-5.1.21.jar)(這裡放到bigdatamaster節點)

MySql資料庫常用命令總結

一、資料庫級命令 1. 資料庫連線 命令:mysql -h主機地址 -u使用者名稱 -p使用者密碼 –port=3307 1、找到安裝目錄bin, 進入該工作目錄,鍵入該命令mysql -u root -p,提示輸入密碼,使用者名稱前可以有空格也可以沒

MySQL使用小坑總結

1、資料庫中的欄位型別不要使用long型,否則會造成查詢緩慢,可以選擇BigInt型別來代替。 2、避免select *。 3、如果表結構中欄位定義的型別與應用傳入的型別不一致,這時候可能會發生隱式轉換;兩個表join的時候,如果字符集定義不一致,也會導致隱式轉換,mysq

Mysql資料庫常用操作總結

一、windows下mysql資料庫備份1.1 說明   mysql資料庫備份的方法有很多,接下來要說的是用navicat進行備份,過程超簡單。1.2 過程 1)資料庫的備份找到要備份的資料庫(xqdb),單擊右鍵,選擇“轉儲SQL檔案”,儲存到電腦桌面,如下:此時,桌面上會

MySQL的萬字總結快取,索引,Explain,事務,redo日誌等

hello,小夥伴們,好久不見,MySQL系列停更了差不多兩個月了,也有小夥伴問我為啥不更了呢?其實我去看了MySQL的全集,準備憋個大招,更新篇長文(我不會告訴你是因為我懶的)。 好了,話不多說,直接開始吧。這篇文章將從查詢快取,索引,優化器,explain,redo日誌,undo日誌,事務隔離級別,鎖等方

MySQL深入研究--學習總結1

#前言 本文是筆者學習“林曉斌”老師的《MySQL實戰45講》過程中的,對知識點的總結歸納以及對問題的思考記錄,課程18年11月就出了,當時連載形式,我就上班途中一邊開車一邊聽,學的比較糙,時隔兩年現在再回頭仔細回顧總結下。《MySQL實戰45講》是極客時間的收費課程,價格幾十塊並不貴,但是絕對是一個好課程,

MySQL深入研究--學習總結2

#前言 接上文,繼續學習後續章節。 #第四章&第五章《深入淺出索引》 這兩章節主要介紹的索引結構及其如何合理建立索引,但是我覺得講的比較簡單。 總結回顧下吧,其實在我之前的文章[《資料庫原理研究與優化》](https://www.cnblogs.com/whgk/p/14432347.html)對索引這塊

MySQL深入研究--學習總結3

#前言 接上文,繼續學習後續章節。細心的同學已經發現,我整理的並不一定是作者講的內容,更多是結合自己的理解,加以闡述,所以建議結合原文一起理解。 # 第九章《普通索引和唯一索引,如何選擇》 ## 從查詢和更新效率上看 通過唯一索引查詢時:找到對應主鍵索引,就停止檢索,返回資料。 通過普通索引查詢時:

MySQL深入研究--學習總結4

# 前言 接上文,繼續學習後續章節。細心的同學已經發現,我整理的並不一定是作者講的內容,更多是結合自己的理解,加以闡述,所以建議結合原文一起理解。 # 第13章《為什麼表資料刪除一般,表文件大小不變?》 我們在知道MySQL表的儲存,在8.0之前的版本,表結構相關資料存在.frm檔案中,表資料存在.ib

MySQL深入研究--學習總結5

# 前言 接上文,繼續學習後續章節。細心的同學已經發現,我整理的並不一定是作者講的內容,更多是結合自己的理解,加以闡述,所以建議結合原文一起理解。 # 第20章《幻讀是什麼,幻讀有什麼問題?》 先看下幻讀的定義: 在一個事務中,兩次執行同一個查詢SQL,後一次執行結果比前一次執行結果數量變多了,稱之為