2023年11月29日发(作者:)

尚硅⾕《⾕粒商城项⽬总结》

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(_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((), ());

}

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(_DELETED);

}

}

2、总结

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