商城專案(ssm+dubbo+nginx+mysql統合專案)總結(1)
我不會在這裡貼程式碼和詳細步驟什麼的,我覺得就算我把它貼出來,你們照著步驟做還是會出很多問題,我推薦你們去看一下黑馬的這個視訊,我個人感覺很不錯,一步一步走下來可以學到很多東西。另外,視訊和相關文件的話,關注微信公眾號“Java面試通關手冊”回覆“資源分享第一波”即可領取.
本節內容具體可參考黑馬該專案第四天的教案,教案以及相關文件和資料都在分享的網盤裡面,下載解壓即可。
我這裡主要總結一下自己學到的東西和遇到的坑。我和老師的開發環境有所不同。先說一下我的開發環境把!
開發環境
作業系統:windows10
開發軟體:Myeclipse2017
tomcat:Tomcat7外掛
Maven
Linux作業系統我選擇的是Centos7,Centos7和老師用的Centos6.5還是有很大區別的。
第一天學習的內容
1、電商行業的背景。
這個就不用多提了。
2、宜立方商城的系統架構
宜立方商城介紹:
宜立方網上商城是一個綜合性的B2C平臺,類似京東商城、天貓商城。會員可以在商城瀏覽商品、下訂單,以及參加各種活動。
管理員、運營可以在平臺後臺管理系統中管理商品、訂單、會員等。
客服可以在後臺管理系統中處理使用者的詢問以及投訴。
架構講解
通過一個小故事帶大家看一下這幾年架構的變化:
“傳統架構”:很多年前,剛學完JavaWeb開發的我憑藉一人之力就開發了一個網站,網站 所有的功能和應用都集中在一起,方便了我的開發同時也節省了成本。但是後來我的網站訪問流量突然加大,我通過不斷增加伺服器來提高併發量,但是我發現隨著伺服器的增加服務能力先增加後下降。
不能通過硬體的方式解決問題的我,思考如何通過軟體解決這個問題。
“分散式架構”:後來我按照功能點把系統拆分,拆分成獨立的功能。單獨為某一個節點新增伺服器。通過系統之間配合完成整個業務邏輯。但是隨著我的網站功能的日益完善,我發現各個模組有一些通用的業務邏輯無法共用,這樣可不好,這時候我就在考慮為啥部直接來個面向服務呢???
“面向服務架構”:我把工程拆分成服務層、表現層兩個工程。服務層中包含業務邏輯,只需要對外提供服務即可。表現層只需要處理和頁面的互動,業務邏輯都是呼叫服務層的服務來實現。這樣我的網站不光開發效率快,而且在擴充套件和升級相關服務的時候更加靈活。
宜立方商城系統架構
一些名詞簡單介紹:
Dubbo(開源分散式服務框架):
官網: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三大元件
第一天遇到的問題
1.Missing artifact com.github.pagehelper:pagehelper:jar:3.4.2-fix
pagehelper包用的不是官方的,這裡用的是老師改過的,所以你需要把這個專案匯入然後執行 命令:
pagehelper包所在位置:
2.使用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下安裝mysql(mysql-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,後一次執行結果比前一次執行結果數量變多了,稱之為