Spring-Boot-Api-Starter 基于Spring Boot快速构建项目的脚手架

简介: Spring-Boot-Api-Starter 是一个基于`SpringBoot`,快速构建`RESTful API`工程的脚手架,支持多数据源配置、分布式事务;快速生成各模块的基础代码,极大的提升了开发效率,使团队代码风格保持统一。

简介

Spring-Boot-Api-Starter是一个基于SpringBoot,快速构建RESTful API工程的脚手架,支持多数据源配置、分布式事务;快速生成各模块的基础代码,极大的提升了开发效率,使团队代码风格保持统一。
项目地址:https://github.com/WongMinHo/spring-boot-api-starter

特征

  • 集成 Spring Boot 常用开发组件集
  • 集成 Mybatis Plus、Mybatis Plus Generator组件;实现单表业务零SQL
  • 集成 Atomikos 支持分布式事务、以及支持多数据源配置
  • 统一异常处理
  • 统一响应结果封装
  • 基于 JWT 实现基于 Token 的鉴权机制
  • 使用 Druid Spring Boot Starter 集成 Druid 数据库连接池与监控
  • 使用 AutoGenerator 快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率,使团队代码风格保持统一

项目环境

中间件 版本 备注
JDK 1.8+ JDK1.8及以上
MySQL 5.6+ 5.6及以上,如果使用Druid的分布式驱动,暂不支持8.0+

技术选型

技术 版本 备注
Spring Boot 2.1.9.RELEASE 最新发布稳定版
Mybatis 3.5.2 持久层框架
Mybatis Plus 3.2.0 Mybatis增强框架
Mybatis Plus Generator 3.2.0 MyBatis-Plus 的代码生成器
Jta-Atomikos 2.1.9.RELEASE 分布式事务管理
Alibaba Druid 1.1.20 数据源
FastJson 1.2.60 JSON处理工具集
commons-lang3 3.9 常用工具包
jwt 0.9.1 json web token
lombok 1.18.10 注解生成Java Bean等工具

快速开始

  1. 克隆项目:git clone https://github.com/WongMinHo/spring-boot-api-starter.git
  2. 构建数据库,多数据源可以先创建两个数据库,参考如下sql
  3. test包内的代码生成器MysqlFirstGeneratorMysqlSecondGenerator进行配置,修改对应的连接地址、包目录、作者等
  4. 输入表名,运行代码生成器,生成基础目录和代码结构,根据业务在基础代码上进行扩展
  5. 修改本地环境配置文件application-local.yml,启动项目

创建两个数据库和数据表

#创建第一个数据库和数据表
CREATE DATABASE minhow_first;
-- ----------------------------
-- Table structure for mh_user
-- ----------------------------
USE minhow_first;
DROP TABLE IF EXISTS `mh_user`;
CREATE TABLE `mh_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '姓名',
  `password` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '密码',
  `customer_num` int(11) DEFAULT '0' COMMENT '客户数',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- ----------------------------
-- Records of mh_user
-- ----------------------------
INSERT INTO `mh_user` VALUES (1, 'minhow', NULL, 0);

#创建第二个数据库和数据表
CREATE DATABASE minhow_second;
-- ----------------------------
-- Table structure for mh_customer
-- ----------------------------
USE minhow_second;
DROP TABLE IF EXISTS `mh_customer`;
CREATE TABLE `mh_customer` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL COMMENT '用户id',
  `name` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '姓名',
  `phone` varchar(11) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '手机号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

开发建议

  • 开发规范可以参考阿里巴巴Java开发手册(最新版下载)
  • 公司内部可以把统一异常处理、统一响应结果、鉴权工具类等公共模块封装打包;项目需要用到时,引入工具包。
  • API文档可以使用:Swagger2ShowDoc

相关技术文档

目录
相关文章
|
23小时前
|
人工智能 自然语言处理 API
深度融合与创新:Open API技术促进AI服务生态构建
【7月更文第21天】在数字化转型的浪潮中,人工智能(AI)已从概念探索走向实际应用,深刻改变着各行各业。Open API(开放应用程序接口)作为连接技术与业务的桥梁,正成为推动AI服务普及和生态构建的关键力量。本文将探讨Open API技术如何通过标准化、易用性和灵活性,加速AI服务的集成与创新,构建一个更加丰富多元的AI服务生态系统。
16 2
|
8天前
|
分布式计算 API 对象存储
Ray是一个开源的分布式计算框架,用于构建和扩展分布式应用。它提供了简单的API,使得开发者可以轻松地编写并行和分布式代码,而无需担心底层的复杂性。
Ray是一个开源的分布式计算框架,用于构建和扩展分布式应用。它提供了简单的API,使得开发者可以轻松地编写并行和分布式代码,而无需担心底层的复杂性。
|
7天前
|
前端开发 JavaScript API
惊呆了!学会AJAX与Fetch API,你的Python Web项目瞬间高大上!
【7月更文挑战第15天】AJAX和Fetch API是Web开发中的关键工具,用于异步前后端交互。AJAX借助XMLHttpRequest实现页面局部更新,而Fetch API是现代的、基于Promise的HTTP请求接口,提供更强大功能和简洁语法。结合Python Web框架如Django或Flask,利用这两者能创造无缝体验,提升项目性能和用户体验。学习并应用这些技术,将使你的Web应用焕发新生。**
16 5
|
4天前
|
缓存 JSON 安全
构建高效后端API的五大原则
【7月更文挑战第18天】在数字化时代的浪潮中,后端API成为了连接数据与服务的重要桥梁。本文将深入探讨构建高效后端API的五大核心原则,包括设计哲学、性能优化、安全策略、错误处理和文档编写。这些原则不仅能够提升API的响应速度和稳定性,还能确保开发者和终端用户的良好体验。通过实例分析,我们将展示如何将这些原则应用于实际开发中,以实现高效、安全且易于维护的后端API。
|
5天前
|
SQL Java 调度
实时计算 Flink版产品使用问题之使用Spring Boot启动Flink处理任务时,使用Spring Boot的@Scheduled注解进行定时任务调度,出现内存占用过高,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7天前
|
前端开发 JavaScript API
告别繁琐!AJAX与Fetch API,让你的前后端沟通畅通无阻,项目效率飙升!
【7月更文挑战第15天】AJAX与Fetch API革新了前后端通信,实现页面局部更新,提高用户体验。AJAX利用XMLHttpRequest异步交互,Fetch API则基于Promises,语法简洁。两者均简化了HTTP请求处理,加速项目开发。通过示例代码展示了如何使用它们进行数据请求与响应处理。拥抱这些技术,让Web应用更流畅,开发更高效!
13 2
|
12天前
|
Java API 开发工具
Spring Boot与Spring Cloud Config的集成
Spring Boot与Spring Cloud Config的集成
|
12天前
|
存储 Java 数据挖掘
构建基于Spring Boot的数据分析平台
构建基于Spring Boot的数据分析平台
|
12天前
|
SQL XML Java
解决Spring Boot项目中的数据库迁移问题
解决Spring Boot项目中的数据库迁移问题
|
12天前
|
Java 数据管理 API
构建基于Spring Boot的数据管理平台
构建基于Spring Boot的数据管理平台