尚硅谷《穀粒商城項目總結》

一、前言

花了幾天的時間把尚硅谷的視頻項目看完了,跟着作了一遍,基本上沒啥大的問題,有幾個小問題也作了總結。前端

技術方面除了 vue/nacos 沒用過,其餘的基本都用過,咱們公司實際開發中用的也就是這一套東西。vue

中間的不想看,能夠直接點擊目錄,看總結,總結裏有你針對此項目全部的總結及問題解決的說明git

1.1 技術棧

springcloudspring

統一配置中心:apollo 視頻裏用的 nacos後端

統一註冊中心:eureka  視頻裏用的 nacoside

遠程調用:feignthis

文件上傳:OSS(oss 中有文件過時的設置,咱們項目就由於這個出了問題。加了過時時間戳,而後到時間過時了,淡疼)編碼

vue,前端搞,咱們只搞後端。spa

 

1.2 統一異常處理

1)、異常根據業務分類,而後不一樣的業務異常編碼作到統一的規範.對後期也是很好的,方便維護、管理。code

2)、enum 維護,2 個字段 code msg,能夠和 R 對象一塊兒使用,異常時返回給前端顯示

3)、throw 異常,

xxxException 本身實現的統一異常,構造參數傳上 xxxErrorCode(接口),而後全部的錯誤 Enum 實現這個接口,執行下面的代碼就能夠了。

throw new XXXException(XXXEnum.NOT_USER_ERROR);

而後拋出異常後,這個類(@RestControllerAdvice)就會去統一處理,返回給前臺相應的信息.

咱們的大概用法以下,只是一個大概思路。

/** * @author : bamboo * @date : 2020-04-11 */
public interface MallErrorCode { /** * 獲取錯誤碼 * * @return 錯誤碼 */ String geCode(); /** * 獲取錯誤消息 * * @return 錯誤消息 */ String getMsg(); } /** * @author : bamboo * @date : 2020-04-11 */
public enum UserErrorEnum implements MallErrorCode { /** * */ USER_NOT_FOUND("20001", "沒有找到此用戶"), USER_DELETED("200002", "用戶已被刪除"); private final String code; private final String msg; UserErrorEnum(String code, String msg) { this.code = code; this.msg = msg; } @Override public String geCode() { return this.code; } @Override public String getMsg() { return this.msg; } } /** * @author : bamboo * @date : 2020-04-11 */
public class MallException extends RuntimeException { private String code = "500"; private String msg; public MallException(String code, String msg) { super(msg); this.code = code; } public MallException(MallErrorCode mallErrorCode) { this(mallErrorCode.geCode(), mallErrorCode.getMsg()); } public static void createFailResult(MallErrorCode mallErrorCode) { throw new MallException(mallErrorCode); } public static void createFailResult(String code, String msg) { throw new MallException(code, msg); } public static void main(String[] args) { throw new MallException(UserErrorEnum.USER_DELETED); } }

 

 

1.3 返回信息統一封裝

R 對象.這裏是繼承了 HashMap 對象

咱們是直接用了 Bean 對象,封裝了以下的信息.

{

  "success" : true/false,// 標識接口成功與否

  "code" : 100,//響應編碼

  "msg" : "",//響應消息,錯誤的時候會用到

  "data" : {

  }//返回的數據

}

 

二、總結

針對此項目也作了一些總結,過程當中也遇到了一些小問題,不過都還好,能很快的定位。若是有想看的同窗能夠參考以下連接:

https://gitee.com/yeyinzhu/gulimall-learn/tree/master

相關文章
相關標籤/搜索