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


发布评论