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

相关技术文档

目录
相关文章
|
5天前
|
缓存 安全 Java
Spring Boot 3 集成 Spring Security + JWT
本文详细介绍了如何使用Spring Boot 3和Spring Security集成JWT,实现前后端分离的安全认证概述了从入门到引入数据库,再到使用JWT的完整流程。列举了项目中用到的关键依赖,如MyBatis-Plus、Hutool等。简要提及了系统配置表、部门表、字典表等表结构。使用Hutool-jwt工具类进行JWT校验。配置忽略路径、禁用CSRF、添加JWT校验过滤器等。实现登录接口,返回token等信息。
106 12
|
11天前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
50 8
|
23天前
|
存储 JSON 前端开发
【Spring项目】表白墙,留言板项目的实现
本文主要介绍了表白墙项目的实现,包含前端和后端代码,以及测试
|
23天前
|
JSON 前端开发 Java
|
23天前
|
缓存 前端开发 Java
【Spring】——SpringBoot项目创建
SpringBoot项目创建,SpringBootApplication启动类,target文件,web服务器,tomcat,访问服务器
|
29天前
|
存储 安全 Java
Spring Boot 编写 API 的 10条最佳实践
本文总结了 10 个编写 Spring Boot API 的最佳实践,包括 RESTful API 设计原则、注解使用、依赖注入、异常处理、数据传输对象(DTO)建模、安全措施、版本控制、文档生成、测试策略以及监控和日志记录。每个实践都配有详细的编码示例和解释,帮助开发者像专业人士一样构建高质量的 API。
|
2月前
|
监控 Java 数据库连接
详解Spring Batch:在Spring Boot中实现高效批处理
详解Spring Batch:在Spring Boot中实现高效批处理
323 12
|
2月前
|
安全 Java 测试技术
详解Spring Profiles:在Spring Boot中实现环境配置管理
详解Spring Profiles:在Spring Boot中实现环境配置管理
119 10
|
1月前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
163 5
|
3月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
215 1