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
 - 字段名称,多个单词用下划线隔开
 - 比较长的单词,考虑使用易理解的缩写
 
附件