基于Spring Cloud的微服務(wù)電商平臺系統(tǒng),這個(gè)項(xiàng)目手把手教你實(shí)現(xiàn)
一年之計(jì)在于春,新年就要有新的打算,TJ君身邊不少小伙伴都有點(diǎn)想在新的一年里開個(gè)網(wǎng)店的沖動,但是如何入手、如何開店都是個(gè)學(xué)問,需要好好研究,不過這也說明了電商行業(yè)的前景還是不錯(cuò)滴。
所以當(dāng)TJ君今天留意到這個(gè)開源項(xiàng)目的時(shí)候,第一反應(yīng)就是,可用!推薦!
mall4cloud
說到mall4cloud,不得不先說下Mall4j。
Mall4j是一個(gè)商用的提供多元化電商服務(wù),滿足企業(yè)多場景業(yè)務(wù)需求,為垂直行業(yè)提供專業(yè)的電商解決方案網(wǎng)站,提供多種成熟的電商配套服務(wù),而mall4cloud則正是它的開源版本!
此開源版本,是一個(gè)基于Spring Cloud、Nacos、Seata、Mysql、Redis、RocketMQ、canal、ElasticSearch、minio的微服務(wù)B2B2C電商商城系統(tǒng),非常良心的沒有其他二次封裝,真正做到完全開源,小伙伴們無論是學(xué)習(xí),還是二次開發(fā),都是非常合適的一個(gè)項(xiàng)目。
項(xiàng)目使用 AGPLv3 開源規(guī)則,采用主流的互聯(lián)網(wǎng)技術(shù)架構(gòu),支持集群部署、服務(wù)注冊和發(fā)現(xiàn)以及擁有完整的訂單流程,同時(shí)還擁有不錯(cuò)的UI設(shè)計(jì)效果。
先看看整體目錄結(jié)構(gòu)及應(yīng)用分層:
其中各項(xiàng)分層解釋是這樣的:
- VO(View Object):顯示層對象,通常是 Web 向模板渲染引擎層傳輸?shù)膶ο蟆?/li>
- DTO(Data Transfer Object):數(shù)據(jù)傳輸對象,前端像后臺進(jìn)行傳輸?shù)膶ο螅愃朴趐aram。
- BO(Business Object):業(yè)務(wù)對象,內(nèi)部業(yè)務(wù)對象,只在內(nèi)部傳遞,不對外進(jìn)行傳遞。
- Model:模型層,此對象與數(shù)據(jù)庫表結(jié)構(gòu)一一對應(yīng),通過 Mapper 層向上傳輸數(shù)據(jù)源對象。
- Controller:主要是對外部訪問控制進(jìn)行轉(zhuǎn)發(fā),各類基本參數(shù)校驗(yàn),或者不復(fù)用的業(yè)務(wù)簡單處理等。為了簡單起見,一些與事務(wù)無關(guān)的代碼也在這里編寫。
- FeignClient:由于微服務(wù)之間存在互相調(diào)用,這里是內(nèi)部請求的接口。
- Controller:主要是對內(nèi)部訪問控制進(jìn)行轉(zhuǎn)發(fā),各類基本參數(shù)校驗(yàn),或者不復(fù)用的業(yè)務(wù)簡單處理等。為了簡單起見,一些與事務(wù)無關(guān)的代碼也在這里編寫。
- Service 層:相對具體的業(yè)務(wù)邏輯服務(wù)層。
- Mapper持久層:數(shù)據(jù)訪問層,與底層 MySQL進(jìn)行數(shù)據(jù)交互。
- Listener:監(jiān)聽 RocketMQ 進(jìn)行處理,有時(shí)候會監(jiān)聽easyexcel相關(guān)數(shù)據(jù)。
- Manager 層:通用業(yè)務(wù)處理層,主要有三個(gè)特點(diǎn)。
- 個(gè) DAO 的組合復(fù)用。
了解了這些我們還可以看下項(xiàng)目的架構(gòu)圖:
然后還可以看下實(shí)際運(yùn)行的效果:
訂單界面
平臺管理界面
小程序界面
項(xiàng)目還提供了一系列的開發(fā)及搭建文檔,供小伙伴們在使用過程中查看: