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、开发模式

项目采用分支开发模式,具体步骤

  1. 拿到需求,从master checkout 新分支
  2. 开发需求,测试完成之后,合并到master分支
  3. 从master分支进行打包,发布上线

7、数据规范

  1. 每个表必须的字段: 自增id,create_time, update_time, is_delete
  2. 字段名称,多个单词用下划线隔开
  3. 比较长的单词,考虑使用易理解的缩写
附件