{"id":13511847,"url":"https://github.com/lihengming/spring-boot-api-project-seed","last_synced_at":"2025-07-09T08:05:30.973Z","repository":{"id":37444970,"uuid":"95208623","full_name":"lihengming/spring-boot-api-project-seed","owner":"lihengming","description":":seedling::rocket:一个基于Spring Boot \u0026 MyBatis的种子项目，用于快速构建中小型API、RESTful API项目~","archived":false,"fork":false,"pushed_at":"2023-12-17T23:35:07.000Z","size":77,"stargazers_count":9659,"open_issues_count":112,"forks_count":3778,"subscribers_count":442,"default_branch":"master","last_synced_at":"2025-05-21T01:12:16.906Z","etag":null,"topics":["api","java","mapper","mybatis","mybatis-pagehelper","rest","restful","seed","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lihengming.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-23T10:06:30.000Z","updated_at":"2025-05-19T14:51:20.000Z","dependencies_parsed_at":"2024-10-14T04:40:29.699Z","dependency_job_id":null,"html_url":"https://github.com/lihengming/spring-boot-api-project-seed","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/lihengming/spring-boot-api-project-seed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lihengming%2Fspring-boot-api-project-seed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lihengming%2Fspring-boot-api-project-seed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lihengming%2Fspring-boot-api-project-seed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lihengming%2Fspring-boot-api-project-seed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lihengming","download_url":"https://codeload.github.com/lihengming/spring-boot-api-project-seed/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lihengming%2Fspring-boot-api-project-seed/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264419471,"owners_count":23605198,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","java","mapper","mybatis","mybatis-pagehelper","rest","restful","seed","spring-boot"],"created_at":"2024-08-01T03:01:13.726Z","updated_at":"2025-07-09T08:05:30.955Z","avatar_url":"https://github.com/lihengming.png","language":"Java","funding_links":[],"categories":["Java","开源","后端开发框架及项目"],"sub_categories":["管理面板","Spring Boot"],"readme":"![Licence](https://img.shields.io/badge/licence-none-green.svg)\n[![GitHub Release](https://img.shields.io/github/release/lihengming/spring-boot-api-project-seed.svg)](https://github.com/lihengming/spring-boot-api-project-seed/releases)\n## 简介\nSpring Boot API Project Seed 是一个基于Spring Boot \u0026 MyBatis的种子项目，用于快速构建中小型API、RESTful API项目，该种子项目已经有过多个真实项目的实践，稳定、简单、快速，使我们摆脱那些重复劳动，专注于业务代码的编写，减少加班。下面是一个简单的使用演示，看如何基于本项目在短短几十秒钟内实现一套简单的API，并运行提供服务。\n\n[![请选择超清](https://raw.githubusercontent.com/lihengming/java-codes/master/shared-resources/github-images/project-example-youku.png)](http://v.youku.com/v_show/id_XMjg1NjYwNDgxNg==.html?spm=a2h3j.8428770.3416059.1)\n## 特征\u0026提供\n- 最佳实践的项目结构、配置文件、精简的POM（[查看项目结构图](https://github.com/lihengming/java-codes/blob/master/shared-resources/github-images/project-struct.png)）\n- 统一响应结果封装及生成工具\n- 统一异常处理\n- 简单的接口签名认证\n- 常用基础方法抽象封装\n- 使用Druid Spring Boot Starter 集成Druid数据库连接池与监控\n- 使用FastJsonHttpMessageConverter，提高JSON序列化速度\n- 集成MyBatis、通用Mapper插件、PageHelper分页插件，实现单表业务零SQL\n- 提供代码生成器根据表名生成对应的Model、Mapper、MapperXML、Service、ServiceImpl、Controller等基础代码，其中Controller模板默认提供POST和RESTful两套，根据需求在```CodeGenerator.genController(tableName)```方法中自己选择，默认使用POST模板。代码模板可根据实际项目的需求来扩展，由于每个公司业务都不太一样，所以只提供了一些比较基础、通用的模板，**主要是提供一个思路**来减少重复代码的编写，我在实际项目的使用中，其实根据公司业务的抽象编写了大量的模板。另外，使用模板也有助于保持团队代码风格的统一\n- 另有彩蛋，待你探索\n \n## 快速开始\n1. 克隆项目\n2. 对```test```包内的代码生成器```CodeGenerator```进行配置，主要是JDBC，因为要根据表名来生成代码\n3. 如果只是想根据上面的演示来亲自试试的话可以使用```test resources```目录下的```demo-user.sql```，否则忽略该步\n3. 输入表名，运行```CodeGenerator.main()```方法，生成基础代码（可能需要刷新项目目录才会出来）\n4. 根据业务在基础代码上进行扩展\n5. 对开发环境配置文件```application-dev.properties```进行配置，启动项目，Have Fun！\n \n## 开发建议\n- 表名，建议使用小写，多个单词使用下划线拼接\n- Model内成员变量建议与表字段数量对应，如需扩展成员变量（比如连表查询）建议创建DTO，否则需在扩展的成员变量上加```@Transient```注解，详情见[通用Mapper插件文档说明](https://mapperhelper.github.io/docs/2.use/)\n- 建议业务失败直接使用```ServiceException(\"message\")```抛出，由统一异常处理器来封装业务失败的响应结果，比如```throw new ServiceException(\"该手机号已被注册\")```，会直接被封装为```{\"code\":400,\"message\":\"该手机号已被注册\"}```返回，无需自己处理，尽情抛出\n- 需要工具类的话建议先从```apache-commons-*```和```guava```中找，实在没有再造轮子或引入类库，尽量精简项目\n- 开发规范建议遵循阿里巴巴Java开发手册（[最新版下载](https://github.com/alibaba/p3c))\n- 建议在公司内部使用[ShowDoc](https://github.com/star7th/showdoc)、[SpringFox-Swagger2](https://github.com/springfox/springfox) 、[RAP](https://github.com/thx/RAP)等开源项目来编写、管理API文档\n \n## 技术选型\u0026文档\n- Spring Boot（[查看Spring Boot学习\u0026使用指南](http://www.jianshu.com/p/1a9fd8936bd8)）\n- MyBatis（[查看官方中文文档](http://www.mybatis.org/mybatis-3/zh/index.html)）\n- MyBatisb通用Mapper插件（[查看官方中文文档](https://mapperhelper.github.io/docs/)）\n- MyBatis PageHelper分页插件（[查看官方中文文档](https://pagehelper.github.io/)）\n- Druid Spring Boot Starter（[查看官方中文文档](https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter/)）\n- Fastjson（[查看官方中文文档](https://github.com/Alibaba/fastjson/wiki/%E9%A6%96%E9%A1%B5)）\n- 其他略\n\n## License\n无，纯粹开源分享，感谢大家 [Star](https://github.com/lihengming/spring-boot-api-project-seed/stargazers) \u0026 [Fork](https://github.com/lihengming/spring-boot-api-project-seed/network/members) 的支持。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flihengming%2Fspring-boot-api-project-seed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flihengming%2Fspring-boot-api-project-seed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flihengming%2Fspring-boot-api-project-seed/lists"}