03 一个接口的诞生
自学习 Java 以来已半月有余,之前看过教程,这次权当复习,虽然基础内容了解不少,一些重点概念依旧云里雾里。实践出真知,在慕课网上找了个实战教程开始练手,let's go!
数据返回对象
在开始设计接口之前,先设计一个通用的接口返回状态码和接口返回数据对象。
状态码
接口共有 4 种返回状态,分别为成功(SUCCESS)、失败(ERROR)、强制登陆(NEED_LOGIN)和非法参数(ILLEGAL_ARGUMENT),使用枚举实现。
package com.mmall.common;
public enum ResponseCode {
SUCCESS(0, "SUCCESS"),
ERROR(1, "ERROR"),
NEED_LOGIN(10, "NEED_LOGIN"),
ILLEGAL_ARGUMENT(2, "ILLEGAL_ARGUMENT");
private final int code;
private final String desc;
ResponseCode(int code, String desc) {
this.code = code;
this.desc = desc;
}
public int getCode() {
return code;
}
public String getDesc() {
return desc;
}
}返回对象
设计接口返回数据类 ServerResponse,添加三个成员属性,分别为状态码(status)、消息(msg)和返回数据(data),并添加接口访问成功和失败的成员方法。
MD5 加密
MD5 加密方法
数据库不存储用户的明文密码,对于密码都使用 MD5 加密,设计一个通用的加密工具类,在这里文本内容都使用 UTF-8 编码格式。
Password salt
为了避免通过撞库实现 MD5 密码破解,在进行密码 MD5 加密前给密码添加一个固定前缀来增加其复杂度,这个前缀称之为 Password salt,将其写入配置文件 mmall.properties,在加密前读取配置文件再进行密码加密,添加工具类 PropertiesUtil 如下:
接口实现
接口访问流程为访问 Controller->Service->Dao->SQL,接口申明在 Controller 层,在 Service 层设计接口并添加接口的具体实现,在 Dao 层完成数据交互,调用 SQL 语句完成数据库访问。
Controller
Service
添加接口:
接口实现:
DAO
SQL 实现
resources/mappers/UserMapper.xml 新增用户名检查和登录 SQL,当传入多个查询参数时参数类型为 map:
最后更新于
这有帮助吗?