尚硅谷《谷粒商城项目总结》

摘要:
中间的不想看,可以直接点击目录,看总结,总结里有你针对此项目所有的总结及问题解决的说明1.1技术栈springcloud统一配置中心:apollo视频里用的nacos统一注册中心:eureka视频里用的nacos远程调用:feign文件上传:OSS(oss中有文件过期的设置,我们项目就因为这个出了问题。

1、前言

花了几天的时间把尚硅谷的视频项目看完了,跟着做了一遍,基本上没啥大的问题,有几个小问题也做了总结。

技术方面除了 vue/nacos 没用过,其他的基本都用过,我们公司实际开发中用的也就是这一套东西。

中间的不想看,可以直接点击目录,看总结,总结里有你针对此项目所有的总结及问题解决的说明

1.1技术栈

springcloud

统一配置中心:apollo视频里用的 nacos

统一注册中心:eureka 视频里用的 nacos

远程调用:feign

文件上传:OSS(oss中有文件过期的设置,我们项目就因为这个出了问题。加了过期时间戳,然后到时间过期了,淡疼)

vue,前端搞,我们只搞后端。

1.2统一异常处理

1)、异常根据业务分类,然后不同的业务异常编码做到统一的规范.对后期也是很好的,方便维护、管理。

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 interfaceMallErrorCode {

    /*** 获取错误码
     *
     * @return错误码
     */String geCode();

    /*** 获取错误消息
     *
     * @return错误消息
     */String getMsg();

}


/*** @author: bamboo
 * @date : 2020-04-11
 */
public enum UserErrorEnum implementsMallErrorCode {

    /***
     */USER_NOT_FOUND("20001", "没有找到此用户"),

    USER_DELETED("200002", "用户已被删除");

    private finalString code;

    private finalString msg;

    UserErrorEnum(String code, String msg) {
        this.code =code;
        this.msg =msg;
    }

    @Override
    publicString geCode() {
        return this.code;
    }

    @Override
    publicString getMsg() {
        return this.msg;
    }
}


/*** @author: bamboo
 * @date : 2020-04-11
 */
public class MallException extendsRuntimeException {

    private String code = "500";

    privateString msg;

    publicMallException(String code, String msg) {
        super(msg);
        this.code =code;
    }

    publicMallException(MallErrorCode mallErrorCode) {
        this(mallErrorCode.geCode(), mallErrorCode.getMsg());
    }

    public static voidcreateFailResult(MallErrorCode mallErrorCode) {
        throw newMallException(mallErrorCode);
    }

    public static voidcreateFailResult(String code, String msg) {
        throw newMallException(code, msg);
    }

    public static voidmain(String[] args) {
        throw newMallException(UserErrorEnum.USER_DELETED);
    }
}

1.3返回信息统一封装

R对象.这里是继承了 HashMap对象

我们是直接用了 Bean对象,封装了如下的信息.

{

"success" : true/false,//标识接口成功与否

"code" : 100,//响应编码

"msg" : "",//响应消息,错误的时候会用到

"data" : {

}//返回的数据

}

2、总结

针对此项目也做了一些总结,过程中也遇到了一些小问题,不过都还好,能很快的定位。如果有想看的同学可以参考如下链接:

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

免责声明:文章转载自《尚硅谷《谷粒商城项目总结》》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇oracle存储过程创建-调试-调用-删除(一)转:ArcInfo数据格式介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

request请求地址

1、String contextPath = httpServletRequest.getServletContext().getContextPath(); /项目名称 2、String contextPath2 = httpServletRequest.getContextPath(); /项目名称 3、String requestURI = http...

java中String编码转换 UTF-8转GBK

1.GB2312等都可以用GBK代替.2.new String(row.getBytes("GB2312"), "UTF8") 这种写法是不对的, 中文仍然会乱码. 方案:解决GBK字符转UTF-8乱码问题: https://www.cnblogs.com/xijin-wu/p/5884822.html 彻底搞懂编码 GBK 和 UTF8:https:/...

RocketMQ(八)RocketMQ的Consumer负载均衡

一、问题描述 RocketMQ的Consumer是如何做的负载均衡?比如:5个Consumer进程同时消费一个Topic,这个Topic只有4个queue会出现啥情况?反之Consumer数量小于queue的数据是啥情况? 二、源码剖析 1、RebalancePushImpl public class RebalancePushImpl extends R...

C# HttpWebRequest请求服务器(Get/Post兼容)

简单示例说明 public static string HttpGet(string url, string data,string Method, int timeOut, Encoding encode, string contentType = "application/x-www-form-urlencoded", CookieContainer...

impala 四舍五入后转换成string后又变成一个double的数值解决(除不尽的情况)

impala 四舍五入后转换成string后又变成一个double的数值解决(除不尽的情况)例如Query: select cast(round(2 / 3, 4)*100 as string)+---------------------------------------+| cast(round(2 / 3, 4) * 100 as string) |...

c# 获取相对路径(收藏)

c# 获取相对路径一、获取当前文件的路径 1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName 获取模块的完整路径,包括文件名。 2. System.Environment.CurrentDirectory 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。 3....