cxyxiaokui / spring-boot-api-project-monkey

🐒 :rocket:一个基于Spring Boot & MyBatis的后台API 项目,用于快速构建中小型API、RESTful API项目~

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Spring Boot 2.0 GitHub Release License

平台简介

Spring Boot API Project Monkey 项目基于 Spring Boot API Project Speed 开源项目改造而来,将原先的 SpringBoot 版本 1.5.4.RELEASE 升级为 2.1.1.RELEASE 。 去除 MyBatis 通用Mapper插件替换为MyBatis 提供SpringBoot starter 原生方式,添加在线文档工具 Knife4j、单元测试封装、优化代码以及代码目录结构等新功能。具体请参看 提供内置功能列表。

开源该项目的初衷

Spring Boot API Project Speed 项目是自己在 GitHub 查找 SpringBoot API 开源项目时发现的,参看了下源码后觉得写的确实不错, 但是有些地方和我想要的不太一样,于是利用业务时间改造了一个自己喜欢的后台 API 项目的轮子。本着继续延续 Spring Boot API Project Speed 项目的宗旨:快速、简洁、灵活,故又起了一个新名字 Moneky , 同时项目部分代码参考优秀开源项目 RuoYi

提供内置功能

  • 统一响应结果封装及生成工具。
  • 统一异常处理。
  • 简单的接口签名认证
  • 常用基础方法抽象封装。
  • 使用Druid Spring Boot Starter 集成Druid数据库连接池与监控。
  • 使用FastJsonHttpMessageConverter,提高JSON序列化速度。
  • 使用 Jasypt加密,提高项目配置安全性。
  • 集成原生MyBatis Xml方式、PageHelper分页插件。
  • 集成 Swagger-Bootstrap-UI 增强版 Knife4j 在线展示 Swagger 配置文档。
  • 提供代码生成器根据表名生成对应的Model、Mapper、MapperXML、Service、ServiceImpl、Controller基础代码。
  • 对 MockMvc 进行封装使用MockMvc 测试更简单,同时基于封装的MockMvc单元测试基础代码生成。
  • 集成 kk-anti-reptile 反爬虫,防止接口盗刷。
  • 集成优秀工具类库 Hutool
  • 集成 Jmockdta 一款模拟JAVA类型或对象的实例化并随机初始化对象的数据的工具
  • 另有彩蛋,待你探索  

快速开始

  1. 克隆项目
  2. test包内的代码生成器CodeGeneratorConstant进行配置,主要是包名和项目路径以及开发者信息。
  3. 如果只是想根据上面的演示来亲自试试的话可以使用test resources目录下的demo-user.sql,否则忽略该步
  4. CodeGenerator 修改表名(TABLE_NAME)、包名(PACKAGE_NAME)、Entitiy名称(ENTITY_NAME)运行CodeGenerator.genCodeByCustomModelName()测试方法,生成基础代码(可能需要刷新项目目录才会出来)
  5. 根据业务在基础代码上进行扩展
  6. 对开发环境配置文件application-dev.properties进行配置,启动项目。
  7. 访问 localhost:8080/doc.html 查看项目API文档以及测试。

开发建议

  • 表名,建议使用小写,多个单词使用下划线拼接
  • 建议业务失败直接使用BusinessException("message")抛出,由统一异常处理器来封装业务失败的响应结果,比如throw new ServiceException("该手机号已被注册"),会直接被封装为{"code":400,"message":"该手机号已被注册"}返回,无需自己处理,尽情抛出
  • 开发规范建议遵循阿里巴巴Java开发手册(最新版下载)  

技术选型&文档

License

Apache-2.0 License ,感谢大家 Star & Fork 的支持。同时欢迎大家关注我的微信公众号 桌前明月,后续会在公公众号上提供项目详细文档。

About

🐒 :rocket:一个基于Spring Boot & MyBatis的后台API 项目,用于快速构建中小型API、RESTful API项目~

License:Apache License 2.0


Languages

Language:Java 90.2%Language:FreeMarker 7.5%Language:HTML 1.8%Language:PLpgSQL 0.5%