{"id":19746068,"url":"https://github.com/wongminho/spring-boot-api-starter","last_synced_at":"2025-04-30T08:30:43.958Z","repository":{"id":41176430,"uuid":"213287516","full_name":"WongMinHo/spring-boot-api-starter","owner":"WongMinHo","description":"🚀 一个基于 Spring Boot，快速构建 RESTful API 工程的脚手架，支持多数据源配置、分布式事务","archived":false,"fork":false,"pushed_at":"2022-06-21T01:59:44.000Z","size":81,"stargazers_count":69,"open_issues_count":3,"forks_count":31,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-01-16T16:38:41.711Z","etag":null,"topics":["atomikos","druid","jwt","mybatis","mybatis-plus","restful-api","seed-project","spring-boot"],"latest_commit_sha":null,"homepage":null,"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/WongMinHo.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}},"created_at":"2019-10-07T03:30:16.000Z","updated_at":"2023-12-04T02:10:36.000Z","dependencies_parsed_at":"2022-08-25T15:10:50.069Z","dependency_job_id":null,"html_url":"https://github.com/WongMinHo/spring-boot-api-starter","commit_stats":null,"previous_names":[],"tags_count":1,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WongMinHo%2Fspring-boot-api-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WongMinHo%2Fspring-boot-api-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WongMinHo%2Fspring-boot-api-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WongMinHo%2Fspring-boot-api-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WongMinHo","download_url":"https://codeload.github.com/WongMinHo/spring-boot-api-starter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224202839,"owners_count":17272807,"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":["atomikos","druid","jwt","mybatis","mybatis-plus","restful-api","seed-project","spring-boot"],"created_at":"2024-11-12T02:13:20.203Z","updated_at":"2024-11-12T02:13:20.791Z","avatar_url":"https://github.com/WongMinHo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\" style=\"size: 25px\"\u003e\n  Spring-Boot-Api-Starter\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e  \n  \u003ca href=\"https://github.com/spring-projects/spring-boot\"\u003e\n    \u003cimg alt=\"spring boot version\" src=\"https://img.shields.io/badge/spring%20boot-2.1.9.RELEASE-brightgreen\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/wongminho/spring-boot-api-starter/releases\"\u003e\n    \u003cimg alt=\"spring-boot-api-starter releases\" src=\"https://img.shields.io/github/release/wongminho/spring-boot-api-starter.svg?style=flat-square\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## 简介\n\nSpring-Boot-Api-Starter 是一个基于`SpringBoot`，快速构建`RESTful API`工程的脚手架，支持多数据源配置、分布式事务；快速生成各模块的基础代码，极大的提升了开发效率，使团队代码风格保持统一。\n\n## 特征\n- 集成 Spring Boot 常用开发组件集\n- 集成 Mybatis Plus、Mybatis Plus Generator组件；实现单表业务零SQL\n- 集成 Atomikos 支持分布式事务、以及支持多数据源配置\n- 统一异常处理\n- 统一响应结果封装\n- 基于 JWT 实现基于 Token 的鉴权机制\n- 使用 Druid Spring Boot Starter 集成 Druid 数据库连接池与监控\n- 使用 AutoGenerator 快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码，极大的提升了开发效率，使团队代码风格保持统一\n\n### 项目环境 \n中间件 | 版本 |  备注\n-|-|-\nJDK | 1.8+ | JDK1.8及以上 |\nMySQL | 5.6+ | 5.6及以上，如果使用Druid的分布式驱动，暂不支持8.0+ |\n\n### 技术选型\n技术 | 版本 |  备注\n-|-|-\nSpring Boot | 2.1.9.RELEASE | 最新发布稳定版 |\nMybatis | 3.5.2 | 持久层框架 |\nMybatis Plus | 3.2.0 | Mybatis增强框架 |\nMybatis Plus Generator | 3.2.0 | MyBatis-Plus 的代码生成器 |\nJta-Atomikos | 2.1.9.RELEASE | 分布式事务管理 |\nAlibaba Druid | 1.1.20 | 数据源 |\nFastJson | 1.2.60 | JSON处理工具集 |\ncommons-lang3 | 3.9 | 常用工具包 |\njwt | 0.9.1 | json web token |\nlombok | 1.18.10 | 注解生成Java Bean等工具 |\n\n## 快速开始\n1. 克隆项目:`git clone https://github.com/WongMinHo/spring-boot-api-starter.git`\n2. 构建数据库，多数据源可以先创建两个数据库，参考如下sql\n3. 对`test`包内的代码生成器`MysqlFirstGenerator`、`MysqlSecondGenerator`进行配置，修改对应的连接地址、包目录、作者等\n4. 输入表名，运行代码生成器，生成基础目录和代码结构，根据业务在基础代码上进行扩展\n5. 修改本地环境配置文件`application-local.yml`，启动项目\n\n### 创建两个数据库和数据表\n```sql\n#创建第一个数据库和数据表\nCREATE DATABASE minhow_first;\n-- ----------------------------\n-- Table structure for mh_user\n-- ----------------------------\nUSE minhow_first;\nDROP TABLE IF EXISTS `mh_user`;\nCREATE TABLE `mh_user` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `name` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '姓名',\n  `password` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '密码',\n  `customer_num` int(11) DEFAULT '0' COMMENT '客户数',\n  PRIMARY KEY (`id`)\n) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n\n-- ----------------------------\n-- Records of mh_user\n-- ----------------------------\nINSERT INTO `mh_user` VALUES (1, 'minhow', NULL, 0);\n\n#创建第二个数据库和数据表\nCREATE DATABASE minhow_second;\n-- ----------------------------\n-- Table structure for mh_customer\n-- ----------------------------\nUSE minhow_second;\nDROP TABLE IF EXISTS `mh_customer`;\nCREATE TABLE `mh_customer` (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `user_id` int(11) DEFAULT NULL COMMENT '用户id',\n  `name` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '姓名',\n  `phone` varchar(11) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '手机号',\n  PRIMARY KEY (`id`)\n) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n```\n\n## 开发建议\n- 开发规范可以参考阿里巴巴Java开发手册（[最新版下载](https://github.com/alibaba/p3c))\n- 公司内部可以把统一异常处理、统一响应结果、鉴权工具类等公共模块封装打包；项目需要用到时，引入工具包。\n- API文档可以使用：[Swagger2](https://swagger.io/)、[ShowDoc](https://github.com/star7th/showdoc)。\n\n\n## 相关技术文档\n- Spring Boot（[查看官方文档](https://spring.io/projects/spring-boot/)）\n- MyBatis（[查看官方中文文档](http://www.mybatis.org/mybatis-3/zh/index.html)）\n- Mybatis Plus（[查看官方文档](https://mybatis.plus/guide/)）\n- Druid Spring Boot Starter（[查看官方中文文档](https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter/)）\n- FastJson（[查看官方中文文档](https://github.com/alibaba/fastjson/wiki/Quick-Start-CN)）\n- Jwt（[项目文档](https://github.com/jwtk/jjwt)）\n\n\n## License\n开源分享，感谢支持 [Star](https://github.com/wongminho/spring-boot-api-starter/stargazers) \u0026 [Fork](https://github.com/wongminho/spring-boot-api-starter/network/members) 。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwongminho%2Fspring-boot-api-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwongminho%2Fspring-boot-api-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwongminho%2Fspring-boot-api-starter/lists"}