为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第4天 用户注册与登录

标签:
Java

一、课程介绍

【课程名称】SpringBoot 2.x 实战仿B站高性能后端项目。


【章节】第三章3.7、3.8、3.9、3.10    用户注册与登录:接口开发


【讲师】HELLOSTAR


二、课程内容

    1.项目开发架构:控制器层、业务逻辑层、数据层。

    数据层:

        在接口上使用Mybatis框架的注解:@Mapper。将该接口与写实际sql代码的xml文件进行关联。接口中的方法名与xml文件中的sql语句的id标识符一一对应。操作数据库。

    业务逻辑层:

        在类或者接口上使用@Service表示该文件是处理业务逻辑的接口或类。在其中编写主要的业务逻辑代码,通过注入mapper接口间接的操作数据库。

    控制器层:

        也是通常所说的接口层或叫做API。使用@RestController或@Controller接口表示。提供请求路径,接收前端请求,通过注入service接口来处理请求,完成业务处理。


    2.登录注册没什么好说的。校验必填信息,用户名密码是否正确等等。其中密码的加解密和加密保存使用了上节所讲的工具类来实现。

String password = user.getPassword();
String rawPassword;
try{
    //前端传来的密码已经加密,此处进行解密
    rawPassword = RSAUtil.decrypt(password);
}catch (Exception e){
    throw new ConditionException("密码解密失败!");
}
//数据库中不能明文存储密码,此处md5进行加密。
String md5Password = MD5Util.sign(rawPassword, salt, "UTF-8");
user.setSalt(salt);
user.setPassword(md5Password);
user.setCreateTime(now);
//存储到数据库
userDao.addUser(user);

    其中,注册用户时没有id,可以通过Mybatis中的主键生成功能自动生成id,xml代码如下。

<insert id="addUser" parameterType="com.imooc.bilibili.domain.User" useGeneratedKeys="true" keyProperty="id">
    insert into
        t_user(
           phone,
           email,
           password,
           salt,
           createTime
        )values (
            #{phone},
            #{email},
            #{password},
            #{salt},
            #{createTime}
        )
</insert>

 useGeneratedKeys="true"表示开启自动生成字段;  keyProperty="id"表示自动生成的字段是id。

    3.其他

        项目中经常使用的变量可以创建为常量,所有的常量保存在同一个常量类中统一储存。常量一次创建,多处使用,并且需要修改的时候也是一处修改,全部生效。创建常量时使用final,为了方便全局调用加上public static。嗯,非常好用。

public static final String GENDER_MALE = "0";
public static final String GENDER_FEMALE = "1";


三、课程收获

    今天学习的内容比较基础,虽然内容主要是登录注册接口的开发和实现,但是开发过程中体现出来的项目开发顺序还是比较有意义的。从mapper数据操作层开始到实际业务逻辑层注入mapper依赖来间接操作数据库,而控制器层主要负责与前端进行交互。Spring这样的分层开发,实现低耦合,高拓展性的设计实在是优雅。抛开繁琐的ifelse的业务逻辑,这种设计才是编程之美。

    我对编程的理解比较浅薄,在这也不再赘述。好了,今天就学到这里了,再学,就不礼貌了。LinkStart👻


四、学习过程

https://img1.sycdn.imooc.com//6319eb6c0001117316710888.jpg

https://img1.sycdn.imooc.com//6319eb870001233c07880645.jpg





点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消