1、项目的技术栈
- maven (下载附件的settings.txt,替换maven settings的内容)
- springboot 2.1.5.RELEASE spring 5.1.13.RELEASE
- mybatis plus (单表的操作,建议使用mybatis generator生成mapper和dao)
- mysql
2、项目目录结构
每个模块建一个包,下面包括五个子目录(如有必要可按需增加)
包名 | 含义 |
---|---|
controller | controller |
service | service |
dao | dao |
model | 数据库实体映射类 |
req | 接口请求参数对象 |
res | 接口输出VO对象 |
3、代码规范
- 类名:大写驼峰
- 方法名:驼峰
- URI:中划线 /api/{module}/{controller}/{method} eg: /api/admin/auth/user-list
- Controller
- 统一使用 @RestController 注解
- Controller统一使用@Api标识接口的用途
- Controller的RequestMapping,格式:”/api/{project-name}/{controller-name}”
- Controller的方法明确使用GetMapping或者PostMapping
- 对象参数使用 @RequestBody 方式进行传参
- 返回值使用
Response<T>
进行包装,有报错设置code和msg (后续封装工具类和错误码枚举) - Controller方法中尽量不要放业务逻辑,统一封装套service层
- LOG: 统一使用@Slf4j注解,不要自定义Logger对象了
4、示例代码
@Api("角色相关接口")
@RestController
@RequestMapping("/api/zcbus/role")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class RoleController {
private final RoleService roleService;
@GetMapping("/get-all")
public Response<List<Role>> getAll(){
return new Response<>();
}
}
5、依赖包冲突问题
在pom的
如果代码有编译问题,请对应的开发修改代码
如果还有依赖的问题,联系我处理
6、开发模式
项目采用分支开发模式,具体步骤
- 拿到需求,从master checkout 新分支
- 开发需求,测试完成之后,合并到master分支
- 从master分支进行打包,发布上线
7、数据规范
- 每个表必须的字段: 自增id,create_time, update_time, is_delete
- 字段名称,多个单词用下划线隔开
- 比较长的单词,考虑使用易理解的缩写
附件