作者:简单的土豆
最近使用Spring Boot 配合 MyBatis 、通用Mapper插件、PageHelper分页插件 连做了几个中小型API项目,做下来觉得这套框架、工具搭配起来开发这种项目确实非常舒服,团队的反响也不错。在项目搭建和开发的过程中也总结了一些小经验,与大家分享一下。
在开发一个API项目之前,搭建项目、引入依赖、配置框架这些基础活自然不用多说,通常为了加快项目的开发进度(早点回家)还需要封装一些常用的类和工具,比如统一的响应结果封装、统一的异常处理、接口签名认证、基础的增删改差方法封装、基础代码生成工具等等,有了这些项目才能开工。
然而,下次再做类似的项目上述那些步骤可能还要搞一遍,虽然通常是拿过来改改,但是还是比较浪费时间。所以,可以利用面向对象抽象、封装的思想,抽取这类项目的共同之处封装成了一个种子项目(估计大部分公司都会有很多类似的种子项目),这样的话下次再开发类似的项目直接在该种子项目上迭代就可以了,减少无意义的重复工作。
在相关项目上线之后,我花了点时间对该种子项目做了一些精简,并且已经把该项目分享到GitHub上面了,如果你正准备做类似项目的话,可以去克隆下来试试。
项目地址&使用文档:https://github.com/lihengming/spring-boot-api-project-seed 。
如果在使用中发现问题或者有什么好建议的话欢迎提issue或pr一起来完善它。
特征&提供
最佳实践的项目结构、配置文件、精简的POM
![b84af7b1587dfa0c249f0a156e9a4dc4.png](https://img-blog.csdnimg.cn/img_convert/b84af7b1587dfa0c249f0a156e9a4dc4.png)
注:使用代码生成器生成代码后会创建model、dao、service、web等包。
统一响应结果封装及生成工具
/** * 统一API响应结果封装 */publicclass Result { privateint code; private String message; private Object data; public Result setCode(ResultCode resultCode) { this.code = resultCode.code; returnthis; } //省略getter、setter方法}
/** * 响应码枚举,参考HTTP状态码的语义 */publicenum ResultCode { SUCCESS(200),//成功 FAIL(400),//失败 UNAUTHORIZED(401),//未认证(签名错误) NOT_FOUND(404),//接口不存在 INTERNAL_SERVER_ERROR(500);//服务器内部错误 publi