这里写自定义目录标题
整合spring boot + Mybatis
每次新项目启动,都拿老项目出来删删改改,抽空写个简易版的注册,登录, token 加密,接口拦截。本篇文章整合spring boot+mybatis, 适用新项目启动。后续在此框架上再陆续加上其他功能,如本地缓存管理等。我用的IDE是STS 4
一 新建工程
-
File -> New Spring Starter Project
-
选必要的几个依赖,点击完成后下载对应的包。
-
启动项目
-
访问http://localhost:8080/ 即可,说明已经启动。下一步写个接口返回数据
如果需要给访问路径加一个前缀,比如,http://localhost:8080/hiboot, 只需要配置application.properties:
server.servlet.context-path=/hiboot
修改端口
server.port=8881
-
外化配置
工作中,通常我们有开发环境,测试环境,生产环境,可以通过外化配置来指定当前对应的环境。在application.properties指定对应的环境,比如我们指定当前为dev环境:
spring.profiles.active=dev
二、返回restful API
此部分主要写一个接口,返回json格式数据。包括:
1、统一封装返回类型,以DataResponse返回。
2、封装错误码
- 新建package, 包名为controller:
@RestController
@RequestMapping("user")
public class UserController {
@GetMapping("/sayhi")
public String sayHello() {
return "hi, gdp2852";
}
}
- 访问路径: http://localhost:8080/user/sayhi
为了方便前端,统一返回数据格式,封装了返回类型: DataResponse。
@Getter
@Setter
public class DataResponse <T> implements Serializable {
private static final int SUCCESS = 0;
private static final int DEFAULT_FAIL = 1;
private static final String DEFAULT_SUCCESS_MSG = "处理成功";
private static final String DEFAULT_FAILURE_MSG = "处理失败";
private int errcode;
private String errmsg;
private T data;
private DataResponse(int errcode, String errmsg, T data) {
this.errcode = errcode;
this.errmsg = errmsg;
this.data = data;
}
public static <T> DataResponse<T> buildSuccess() {
return new DataResponse<>(SUCCESS, DEFAULT_SUCCESS_MSG, null);
}
public static <T> DataResponse<T> buildSuccess(T data) {
return new DataResponse<>(SUCCESS, DEFAULT_SUCCESS_MSG, data);
}
public static <T> DataResponse<T> buildSuccess(String succMsg, T data) {
return new DataResponse<>(SUCCESS, succMsg, data);
}
public static <T> DataResponse<T> buildFail(BizException ex) {
return new DataResponse<>(ex.getErrorCode(), ex.getErrorMsg(), null);
}
public static <T> DataResponse<T> buildFail() {
return new DataResponse<>(DEFAULT_FAIL, DEFAULT_FAILURE_MSG, null);
}
public static <T> DataResponse<T> buildFail(String msg) {
return new DataResponse<>(DEFAULT_FAIL, msg, null);
}
public static <T> DataResponse<T> buildFail(int code, String msg) {
return new DataResponse<>(code, msg, null);
}
public static <T> DataResponse<T> buildFail(int code, String msg, T data) {
return new DataResponse<>(code, msg, data);
}
}