SpringBoot构建电商基础秒杀项目-----学习笔记1

慕课网地址:https://www.imooc.com/learn/1079

参考资料:https://www.cnblogs.com/victorbu/tag/Spring%20Boot/default.html?page=2

项目具体搭建,可以具体看慕课网地址或者最上面的参考资料。

用户模块搭建

视频3-1

在这里,主要讲了重新写一些实体类。因为与数据库打交道的是2个实体类。我们需要封装成一个类(UserModel)。但因为封装后会返回一些不该返回的信息,比如用户密码,所以重新再定义了一个VO类,用于controller层进行传递。其实这两个类是差不多

的,只是信息减少了。另外,由于使用了mybatis-generator工具自动生成代码,只能根据主键查询,所以需要增加新的方法。

在 UserPasswordDOMapper 中添加方法:UserPasswordDO selectByUserId(Integer userId);

同时在UserPasswordDOMapper.xml添加下列句子:

  <select id="selectByUserId" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />
    from user_password
    where user_id = #{userId,jdbcType=INTEGER}
  </select>

UserModel类如下:【我用了Lombok插件。】

@Getter
@Setter
public class UserModel {
    private Integer id;
    private String name;
    private Byte gender;
    private Integer age;
    private String telphone;
    private String registerMode;
    private String thirdPartyId;

    private String encrptPassword;
}

UserVO类

@Getter
@Setter
public class UserVO {
    private Integer id;
    private String name;
    private Byte gender;
    private Integer age;
    private String telphone;
}

视频3-2

在这一节的视频,主要讲解了定义一个通用的返回对象。这是前后端分离的做法吧。

CommonReturnType 类如下:

@Getter
@Setter
public class CommonReturnType {
    //表明返回处理是success还是fail
    private String status;
    //若成功。返回需要的数据
    //若错误 返回通用错误码格式
    private Object data;

    //通用创建方法
    public static CommonReturnType create(Object result){
        return CommonReturnType.create(result,"success");
    }

    public static CommonReturnType create(Object result,String status){
        CommonReturnType type = new CommonReturnType();
        type.setStatus(status);
        type.setData(result);
        return type;
    }
}

视频3-3

在这一讲,主要讲了统一异常处理。返回统一的错误结果。因为当发生错误时,我们希望返回一个统一的界面,而不是用官方的界面。

在这里,我们先定义一个接口:CommonError 

public interface CommonError {
    public int getErrorCode();
    public String getErrMsg();
    public CommonError setErrMsg(String errMsg);
}

再定义一个枚举类EmBusinessError 

在这里。定义了一些基本的错误,还有错误信息。

public enum EmBusinessError implements CommonError {
    //通用错误类型00001
    PARAMETER_VALIDATION_ERROR(00001,"参数不合法"),

    //10000开头为用户信息相关错误定义
    USER_NOT_EXIST(10001,"用户不存在")
    ;

    private int errCode;
    private String errMsg;

    private EmBusinessError(int errorCode, String errMsg){
        this.errCode = errorCode;
        this.errMsg = errMsg;
    }

    @Override
    public int getErrorCode() {
        return this.errCode;
    }

    @Override
    public String getErrMsg() {
        return this.errMsg;
    }

    @Override
    public CommonError setErrMsg(String errMsg) {
        this.errMsg = errMsg;
        return this;
    }
}

然后定义异常

public class BusinessException extends Exception implements CommonError {

    private CommonError commonError;

    //直接接受EmBusinessError的传参 用于构造业务异常
    public BusinessException(CommonError commonError) {
        super();
        this.commonError = commonError;
    }

    public BusinessException(CommonError commonError, String errMsg) {
        super();
        this.commonError = commonError;
        this.commonError.setErrMsg(errMsg);
    }

    @Override
    public int getErrorCode() {
        return this.commonError.getErrorCode();
    }

    @Override
    public String getErrMsg() {
        return this.commonError.getErrMsg();
    }

    @Override
    public CommonError setErrMsg(String errMsg) {
        this.commonError.setErrMsg(errMsg);
        return this;
    }
}

总结

在这之前,我做项目一般只会定义一些实体类(直接与数据库匹配),并不会生成这么多的实体类,也不会考虑前端展示而删除一些数据。但是视频中有DO,VO,还有model,根据不同情况用不同的类。另外,我也很少用到统一异常处理,因此在这个视频还是学到挺多东西的。摘抄一下参考资料的东西。

  • data object: 与数据库完全映射,不包含任何逻辑
  • model: 业务交互逻辑模型
  • view object: 前端展示数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值