Springboot+SpringCloud實(shí)戰(zhàn)(微課版)15-第十五章_第1頁
Springboot+SpringCloud實(shí)戰(zhàn)(微課版)15-第十五章_第2頁
Springboot+SpringCloud實(shí)戰(zhàn)(微課版)15-第十五章_第3頁
Springboot+SpringCloud實(shí)戰(zhàn)(微課版)15-第十五章_第4頁
Springboot+SpringCloud實(shí)戰(zhàn)(微課版)15-第十五章_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第十五章SpringCloud項(xiàng)目實(shí)戰(zhàn)學(xué)習(xí)目標(biāo)熟悉電商項(xiàng)目基本功能。熟悉項(xiàng)目架構(gòu)搭建與數(shù)據(jù)庫設(shè)計(jì)。熟悉SpringBoot框架和微服務(wù)SpringCloud框架在項(xiàng)目中的使用。掌握電商項(xiàng)目用戶、商品、訂單等模塊的實(shí)現(xiàn)。掌握項(xiàng)目網(wǎng)關(guān)實(shí)現(xiàn)接口統(tǒng)一訪問和服務(wù)監(jiān)控。掌握項(xiàng)目的部署和運(yùn)行。從學(xué)習(xí)SpringBoot快速開發(fā)與使用SpringBoot框架整合常用框架開發(fā),到學(xué)習(xí)SpringCloud的各個(gè)組件進(jìn)行微服務(wù)項(xiàng)目的開發(fā),我們對框架的基本運(yùn)用已經(jīng)有了一定的了解,但是還沒有在項(xiàng)目中進(jìn)行綜合的實(shí)戰(zhàn)運(yùn)用,所以本章將通過開發(fā)一個(gè)電商項(xiàng)目以及實(shí)現(xiàn)其核心功能來使讀者更加熟練、靈活地應(yīng)用SpringBoot框架和SpringCloud框架。項(xiàng)目分析12項(xiàng)目設(shè)計(jì)3項(xiàng)目準(zhǔn)備4創(chuàng)建Maven項(xiàng)目與common模塊5創(chuàng)建注冊中心模塊6創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊7創(chuàng)建網(wǎng)關(guān)項(xiàng)目分析一個(gè)項(xiàng)目在開發(fā)之前必須要先進(jìn)行需求分析,因此本節(jié)介紹一下項(xiàng)目的背景和功能需求,使讀者對本項(xiàng)目的開發(fā)目標(biāo)有一定了解。1、項(xiàng)目背景學(xué)習(xí)過SpringBoot和SpringCloud技術(shù)之后我們知道,SpringBoot框架可以讓我們快速開發(fā)一個(gè)項(xiàng)目,特別適合小項(xiàng)目或者單一服務(wù)的開發(fā),這意味著諸如CRM(CustomerRelationshipManagement,客戶關(guān)系管理)、OA(OfficeAutomation,辦公自動(dòng)化)等管理型系統(tǒng)使用SpringBoot開發(fā)就可以了。但是如果我們想要系統(tǒng)中的模塊耦合性和影響性更小以及靈活性和擴(kuò)展性更好,就要使用SpringCloud進(jìn)行微服務(wù)開發(fā),而適合這類開發(fā)的項(xiàng)目當(dāng)屬電商類項(xiàng)目居多,所以我們選擇電商項(xiàng)目進(jìn)行實(shí)戰(zhàn)。2、項(xiàng)目功能介紹通常來說,一個(gè)大的電商項(xiàng)目的業(yè)務(wù)功能模塊很多,例如,用戶管理、商品、評論、購物車、支付、秒殺、團(tuán)購、店鋪管理等功能。并且高并發(fā)量引起的并發(fā)性能、流量等問題導(dǎo)致所使用到的技術(shù)也非常多,例如,“秒殺”業(yè)務(wù)需要更多的技術(shù)支持和知識儲備。因?yàn)槠邢蓿覀冎饕獙﹄娚添?xiàng)目的基本功能進(jìn)行實(shí)戰(zhàn)開發(fā)。本章開發(fā)的電商網(wǎng)站主要包含用戶注冊、用戶登錄、商品和分類、商品詳情頁購物車及訂單頁面等功能。具體功能介紹以及效果展示如下。項(xiàng)目分析用戶注冊用戶在查看訂單信息等功能的時(shí)候需要先登錄,而登錄之前需要用戶先注冊賬號。注冊時(shí)需要輸入手機(jī)號、短信驗(yàn)證、用戶名、密碼等信息。②用戶登錄用戶登錄時(shí)需要輸入正確的用戶名和密碼。項(xiàng)目分析③商品和分類登陸后通過搜索商品或者通過單擊具體分類項(xiàng)都可以看到商品列表信息項(xiàng)目分析④商品詳情在商品展示頁單擊商品后,可以進(jìn)入商品詳情頁面,詳情頁中會顯示商品的詳細(xì)信息,并且可以設(shè)置購買的數(shù)量并添加到購物車或者直接購買。項(xiàng)目分析⑤

購物車購物車頁面顯示了當(dāng)前用戶的購物車詳情,用戶可以將購物車中的商品結(jié)算單,也可以編輯購物車中的商品。項(xiàng)目分析⑥

訂單頁面訂單頁面會顯示當(dāng)前用戶所有的訂單,訂單狀態(tài)包括待付款、待發(fā)貨、待收貨和已完成四種狀態(tài)項(xiàng)目分析12項(xiàng)目設(shè)計(jì)3項(xiàng)目準(zhǔn)備4創(chuàng)建Maven項(xiàng)目與common模塊5創(chuàng)建注冊中心模塊6創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊7創(chuàng)建網(wǎng)關(guān)項(xiàng)目設(shè)計(jì)1、系統(tǒng)架構(gòu)設(shè)計(jì)了解了我們要做的項(xiàng)目以及具體的業(yè)務(wù)功能之后,我們就可以開始設(shè)計(jì)我們的系統(tǒng)架構(gòu)和設(shè)計(jì)數(shù)據(jù)庫了。考慮到到電商類的系統(tǒng)模塊比較多,并且我們也希望整個(gè)系統(tǒng)不同模塊之間的耦合性越低越好,各個(gè)模塊獨(dú)立運(yùn)行這樣的話模塊間影響也小,整個(gè)系統(tǒng)的穩(wěn)定性和靈活性就大大提高,所以我們考慮使用SpringCloud微服務(wù)架構(gòu)開發(fā)。使用微服務(wù)架構(gòu)開發(fā),我們首先要做的就是劃分幾個(gè)微服務(wù)。根據(jù)業(yè)務(wù)功能將系統(tǒng)分為6個(gè)服務(wù)。他們分別是服務(wù)注冊中心EurekaServer、網(wǎng)關(guān)和監(jiān)控服務(wù)、用戶服務(wù)、商品服務(wù)、訂單服務(wù)、common公共資源服務(wù)。項(xiàng)目設(shè)計(jì)2、數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫的設(shè)計(jì)因?yàn)橹挥谢A(chǔ)的功能所以表的數(shù)量也不多,因此主要一個(gè)MySQL數(shù)據(jù)庫mall,核心的表主要是用戶表mall_user、商品表mall_goods和商品參數(shù)表mall_goods_attribute、分類表mall_category、購物車表mall_cart、訂單表mall_order和訂單詳情表mall_order_goods。如圖所示。用戶表mall_user項(xiàng)目設(shè)計(jì)商品表mall_goods商品參數(shù)表mall_goods_attribute項(xiàng)目設(shè)計(jì)分類表mall_category購物車表mall_cart項(xiàng)目設(shè)計(jì)訂單表mall_order項(xiàng)目設(shè)計(jì)訂單詳情表mall_order_goods項(xiàng)目分析12項(xiàng)目設(shè)計(jì)3項(xiàng)目準(zhǔn)備4創(chuàng)建Maven項(xiàng)目與common模塊5創(chuàng)建注冊中心模塊6創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊7創(chuàng)建網(wǎng)關(guān)項(xiàng)目準(zhǔn)備1、開發(fā)工具項(xiàng)目開發(fā)工具如下。(1)項(xiàng)目開發(fā)工具:IntelliJIDEA。(2)項(xiàng)目管理工具:Maven。(3)數(shù)據(jù)庫管理工具:Navicat。(4)前端部署工具:Nginx。2、開發(fā)環(huán)境項(xiàng)目開發(fā)環(huán)境如下。(1)操作系統(tǒng):Windows。(2)Java開發(fā)包:JDK8。(3)SpringCloud版本:Hoxton.SR9。(4)SpringBoot版本:2.2.11。(5)數(shù)據(jù)庫:MySQL。項(xiàng)目準(zhǔn)備3、前端環(huán)境準(zhǔn)備前端頁面是使用Vue.js框架編寫的。我們將本書附帶的前端代碼文件mall解壓到nginx的html目錄下。啟動(dòng)Nginx就可以在瀏覽器中訪問前端頁面。項(xiàng)目準(zhǔn)備4、微服務(wù)的拆分根據(jù)業(yè)務(wù)功能將系統(tǒng)分為6個(gè)微服務(wù),具體如下。1.服務(wù)注冊中心EurekaServer搭建EurekaServer作為服務(wù)注冊中心,所有的服務(wù)都將注冊到EurekaServer中。2.公共資源服務(wù)common項(xiàng)目的公共模塊,主要是為了方便開發(fā)以及簡化代碼。將其他服務(wù)需要的資源或者公共的功能放到common服務(wù)里,方便調(diào)用以及避免編寫重復(fù)代碼。3.用戶服務(wù)user項(xiàng)目的用戶模塊,主要包括以用戶為主的服務(wù),例如用戶的登錄、用戶的注冊、用戶的管理以及用戶的相關(guān)信息等。4.商品服務(wù)goods項(xiàng)目的商品模塊,主要包括以商品為主的服務(wù),例如添加商品、刪除商品、修改商品等。5.訂單服務(wù)order項(xiàng)目的訂單模塊,主要包括以訂單為主的服務(wù),記錄了訂單所屬的用戶、訂單中訂購的商品等信息,并對這些訂單進(jìn)行管理。6.網(wǎng)關(guān)與監(jiān)控服務(wù)zuul項(xiàng)目的網(wǎng)關(guān)與監(jiān)控模塊,主要是為了方便調(diào)用接口以及在接口調(diào)用失敗時(shí)快速熔斷,并對服務(wù)調(diào)用進(jìn)行監(jiān)控。項(xiàng)目分析12項(xiàng)目設(shè)計(jì)3項(xiàng)目準(zhǔn)備4創(chuàng)建Maven項(xiàng)目與common模塊5創(chuàng)建注冊中心模塊6創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊7創(chuàng)建網(wǎng)關(guān)創(chuàng)建Maven項(xiàng)目與common模塊1、創(chuàng)建Maven項(xiàng)目下面,我們正式開始開發(fā)項(xiàng)目。首先,創(chuàng)建一個(gè)Maven項(xiàng)目作為微服務(wù)的父工程,將其命名為“mall”。如圖所示。創(chuàng)建Maven項(xiàng)目與common模塊創(chuàng)建好后,編輯pom.xml文件,如程序清單15-1所示。其中,<properties>標(biāo)簽里定義了Java和SpringCloud的版本,方便下面的相關(guān)依賴引用。首先,因?yàn)閱蝹€(gè)微服務(wù)是SpringBoot,所以在<parent>父標(biāo)簽里寫上SpringBoot依賴。接著,在<modules>標(biāo)簽里寫上我們將要?jiǎng)?chuàng)建的微服務(wù)模塊。然后,在dependencies標(biāo)簽里寫上所有微服務(wù)要繼承的依賴,即spring-boot-starter-web和spring-boot-starter-test依賴。最后,在dependencyManagement標(biāo)簽里管理子模塊的依賴的版本,注意,這里面的依賴子模塊不會繼承,只用于約束子模塊的依賴版本。build標(biāo)簽用于編譯和打包配置。SpringBoot項(xiàng)目要用SpringBoot的Maven插件來編譯成jar包。因?yàn)榇虬鼤r(shí)默認(rèn)會先執(zhí)行測試,所以可以在<configuration>標(biāo)簽中寫<skip>true</skip>,表示跳過此階段,這樣打包就會比較快。創(chuàng)建Maven項(xiàng)目與common模塊創(chuàng)建Maven項(xiàng)目與common模塊創(chuàng)建Maven項(xiàng)目與common模塊2、創(chuàng)建common模塊很多情況下,各個(gè)微服務(wù)會用到同樣的代碼,如果把這些公用的代碼抽離出來單獨(dú)做成一個(gè)模塊供其他模塊調(diào)用,就能減少整個(gè)工程代碼的冗余性,增強(qiáng)結(jié)構(gòu)層次。經(jīng)過分析可知,工具類和某些自定義注解是公用的,還包括對象存儲,因此我們把這些部分單獨(dú)寫在common模塊里。首先,在父工程的名字上右擊,選擇“New”→“Module”,創(chuàng)建模塊common。接著,編輯pom.xml文件,如程序清單15-2所示。值得注意的是,jar包有可執(zhí)行和不可執(zhí)行之分。當(dāng)一個(gè)SpringBoot項(xiàng)目作為其他項(xiàng)目的依賴時(shí),只能是不可執(zhí)行的jar包。因此,common模塊需要配置打包方式,在build標(biāo)簽中的Maven插件中指明要單獨(dú)壓縮可執(zhí)行jar包,這樣當(dāng)它作為依賴壓縮進(jìn)其他模塊的jar包時(shí)便是不可執(zhí)行的。創(chuàng)建Maven項(xiàng)目與common模塊創(chuàng)建Maven項(xiàng)目與common模塊由于篇幅有限,我們直接展示已經(jīng)配置完成的Common模塊目錄,如圖所示。然后講解一下每個(gè)類的作用,如有興趣可以查看提供的項(xiàng)目源碼。LoginUser是自定義的一個(gè)注解,用在Controller中的方法參數(shù)上,用于獲取登錄用戶的ID。LoginUserHandlerMethodArgumentResolver是LoginUser注解的解析器,用于實(shí)現(xiàn)這個(gè)注解的功能。StorageController是本地對象存儲的控制層,用于處理資源的上傳、獲取和下載,本項(xiàng)目中存儲的都是圖片資源。MallStorage是mall_storage表的實(shí)體類。MallStorageExample是幫助MallStorage構(gòu)造SQL語句的工具類。MallStorageMapper是本地對象存儲的數(shù)據(jù)層的接口,供服務(wù)層調(diào)用。MallStorageService是本地對象存儲的服務(wù)層的接口,供控制層的類調(diào)用。storage包中存放的是用于配置本地對象存儲的類,這里不詳講。util包中存放的是工具類。其中CharUtil用于獲取隨機(jī)字符串。JacksonUtil和JsonStringArrayTypeHandler用于JSON解析。JwtHelper和UserTokenManager用于token的創(chuàng)建和驗(yàn)證,以及通過token獲取用戶ID。ObjectUtil用于同時(shí)判斷多個(gè)對象是否為null。RegexUtil定義了常用的正則表達(dá)式。ResponseCode定義了業(yè)務(wù)處理的狀態(tài)碼。ResponseUtil是控制層返回值的數(shù)據(jù)包裝類,十分常用。CommonApplication是啟動(dòng)類。resources下的mapper中存放的是數(shù)據(jù)層執(zhí)行SQL語句的XML文件。項(xiàng)目分析12項(xiàng)目設(shè)計(jì)3項(xiàng)目準(zhǔn)備4創(chuàng)建Maven項(xiàng)目并提出公共模塊5創(chuàng)建注冊中心模塊6創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊7創(chuàng)建網(wǎng)關(guān)創(chuàng)建注冊中心模塊父工程和common模塊創(chuàng)建好后,創(chuàng)建名為“eureka”的模塊。然后,編輯pom.xml,如程序清單15-4所示。創(chuàng)建注冊中心模塊接著,我們把perties文件的擴(kuò)展名改為.yml,然后添加程序清單15-5所示的配置。這里不做過多解釋,詳細(xì)講解可以參見第9章第2節(jié)。項(xiàng)目分析12項(xiàng)目設(shè)計(jì)3項(xiàng)目準(zhǔn)備4創(chuàng)建Maven項(xiàng)目并提出公共模塊5創(chuàng)建注冊中心模塊6創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊7創(chuàng)建網(wǎng)關(guān)創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊1.創(chuàng)建用戶模塊eureka模塊創(chuàng)建好后,我們便開始創(chuàng)建3個(gè)業(yè)務(wù)微服務(wù)模塊。首先創(chuàng)建用戶模塊user,創(chuàng)建好后編輯pom.xml,如程序清單15-6所示。創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊接著,我們把perties文件的擴(kuò)展名改為.yml,然后添加程序清單15-7所示的配置。這里不贅述,因?yàn)楹蚦ommon模塊的配置基本一樣。創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊同樣地,我們直接展示已經(jīng)配置完成的user模塊目錄,如右圖所示。其中,WebConfig類實(shí)現(xiàn)WebMvcConfigurer接口,用于把common模塊中的LoginUserHandlerMethodArgumentResolver配置到HandlerMethodArgumentResolver中,這樣自定義的LoginUser注解才能起作用。AddressController是用戶收貨地址的控制層,用于處理用戶對收貨地址的增刪改查。AuthController是用戶的控制層,用于處理用戶的注冊、登錄,以及用戶信息的查詢和修改。entity包中存放的是用戶相關(guān)的實(shí)體類,這里不贅述。和common模塊一樣,mapper和service分別存放的是數(shù)據(jù)層和服務(wù)層的接口,供控制層的類調(diào)用,這里不贅述了。創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊下面舉例講解user模塊中登錄、注冊的實(shí)現(xiàn)過程。看AuthController中的相應(yīng)代碼,如程序清單15-8所示。首先在登錄的方法中,通過body參數(shù)接收用戶傳入的用戶名和密碼,先校驗(yàn)它們是否為空,為空則返回參數(shù)錯(cuò)誤的提示。接著,調(diào)用userService的queryByUsername方法查詢是否含有此用戶名的賬號,沒有或者有多個(gè)則返回錯(cuò)誤提示。然后,通過BCryptPasswordEncoder編碼密碼后判斷其是否和數(shù)據(jù)庫查詢到的賬號的密碼匹配,不匹配則返回密碼錯(cuò)誤提示;如果匹配則生成token返回給用戶,下次用戶發(fā)送請求則可以帶上token表明自己已經(jīng)登錄。然后查看注冊的代碼。首先還是通過body參數(shù)統(tǒng)一接收用戶傳入的用戶名、密碼、手機(jī)號和短信驗(yàn)證碼信息。然后判斷它們是否為空,只要有一個(gè)為空就返回參數(shù)錯(cuò)誤的提示。然后同樣調(diào)用userService的queryByUsername方法查詢是否有用戶名相同的賬號,如果有則返回“用戶名已注冊”。接著判斷是否存在相同的手機(jī)號,以及校驗(yàn)手機(jī)號的格式。然后判斷短信驗(yàn)證碼是否正確,這里我們設(shè)置固定的,因?yàn)槎绦膨?yàn)證碼功能真正要實(shí)現(xiàn)的話需要租用并調(diào)用云服務(wù)商提供的接口,有興趣的讀者可以自行研究。接著,如果前面的校驗(yàn)都通過了,就可以使用userService的add方法添加此賬號,最后一并返回token信息。創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊2.創(chuàng)建商品模塊用戶模塊創(chuàng)建好后,創(chuàng)建商品模塊goods,然后編輯pom.xml,如程序清單15-9所示。創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊接著,我們把perties文件的擴(kuò)展名改為.yml,然后添加程序清單15-10所示的配置。這里不贅述,因?yàn)楹蚦ommon模塊的配置基本一樣。創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊同樣地,我們直接展示已經(jīng)配置完成的goods模塊目錄,如右圖所示。WebConfig類和user模塊中的一樣,這里不再贅述。CartController是商品購物車的控制層,用于處理用戶添加商品至購物車、統(tǒng)計(jì)、移除商品等操作。CatalogController是商品分類目錄的控制層,用于處理商品的分類展示。GoodsController是商品的控制層,用于處理用戶查看商品詳情和查詢包含關(guān)鍵詞的商品列表等操作。下面的entity、mapper和service包相信讀者都了解它們的作用了,這里不贅述。接下來,查看GoodsController中的方法,如程序清單15-11所示。detail方法用于查詢商品詳情,根據(jù)商品Id依次查詢商品的信息、屬性、規(guī)格以及對應(yīng)的數(shù)量和價(jià)格。FutureTask用于開啟多線程任務(wù),這樣查詢更快。最后把查詢的結(jié)果封裝成Map對象返回。category方法用于查詢某一商品分類的父子級。list方法根據(jù)指定條件查詢商品列表,例如根據(jù)分類、品牌、關(guān)鍵詞、是否為新品、是否熱賣等,最后查詢出商品所屬類目一起返回給前端。related方法用于查詢相關(guān)商品。count方法用于查詢在售商品總數(shù)。創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊然后,查看用于分類的CatalogController中的方法,如程序清單15-12所示。getFirstCategory方法用于獲取所有一級分類目錄。getSecondCategory方法用于獲取所有二級分類目錄。index方法用于獲取所有一級分類目錄以及當(dāng)前一級分類目錄對應(yīng)的二級分類目錄。queryALL方法用于獲取所有一級分類目錄以及所有子分類目錄。current方法用于獲取當(dāng)前分類目錄以及子分類目錄。創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊最后,查看實(shí)現(xiàn)購物車的CartController中的方法,如程序清單15-13所示。index方法根據(jù)用戶ID查詢出此用戶的購物車列表,然后循環(huán)遍歷查詢出每個(gè)購物車中每個(gè)商品的數(shù)量和總價(jià),以及勾選的數(shù)量和總價(jià),最后和總商品數(shù)一起返回給前端。add方法用于把商品添加進(jìn)購物車。首先判斷用戶ID和購物車參數(shù)是否為空,為空則返回參數(shù)錯(cuò)誤的提示。然后判斷商品是否為在售商品,不是則返回“商品已下架”。接著判斷購物車中是否有同等規(guī)格的商品,沒有則先判斷是否有庫存,有則創(chuàng)建此商品的購物車對象,將其添加進(jìn)數(shù)據(jù)庫。如果購物車中已經(jīng)有同等規(guī)格的商品,則先判斷是否有庫存,有則將購物車中同等規(guī)格商品數(shù)量和要添加的數(shù)量相加,最后此用戶的購物車商品總數(shù)也相應(yīng)增加。update方法用于對購物車中商品規(guī)格或數(shù)量進(jìn)行修改。首先和上面一樣進(jìn)行參數(shù)校驗(yàn)。然后判斷要修改的規(guī)格的商品庫存情況,如果庫存不足則返回提示,庫存充足則進(jìn)行修改。checked方法用于獲取用戶購物車中已經(jīng)勾選的商品信息,包括數(shù)量、總價(jià)等。delete方法用于刪除用戶不想保留的購物車商品。goodscount方法用于查詢用戶購物車中的商品總數(shù)。創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊3.創(chuàng)建訂單模塊商品模塊創(chuàng)建好后,創(chuàng)建訂單模塊order,創(chuàng)建好后編輯pom.xml,如程序清單15-14所示。創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊接著,我們把perties文件的擴(kuò)展名改為.yml,然后添加程序清單15-15所示的配置。這里不贅述,因?yàn)楹蚦ommon模塊的配置基本一樣。創(chuàng)建各個(gè)業(yè)務(wù)微服務(wù)模塊同樣地,我們直接展示已經(jīng)配置完成的order模塊目錄,如圖所示。OrderController是訂單的控制層,用于處理用戶提交、查看、取消訂單,以及支付、退款等操作。當(dāng)然,這里只是模擬支付和退款,真正實(shí)現(xiàn)的話

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論