Spring-Boot-Api-Starter 基于Spring Boot快速构建项目的脚手架
简介
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等工具 |
快速开始
- 克隆项目:
git clone https://github.com/WongMinHo/spring-boot-api-starter.git
- 构建数据库,多数据源可以先创建两个数据库,参考如下sql
- 对
test
包内的代码生成器MysqlFirstGenerator
、MysqlSecondGenerator
进行配置,修改对应的连接地址、包目录、作者等 - 输入表名,运行代码生成器,生成基础目录和代码结构,根据业务在基础代码上进行扩展
- 修改本地环境配置文件
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文档可以使用:Swagger2、ShowDoc。
相关技术文档
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
LeetCode 136:只出现一次的数字 Single Number
题目: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 Given a non-empty array of integers, every element appears twice except for one. Find that single one. 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 解题思路: 排序数组,如果某个数与前后两个数均不相等则该数只出现一次。 哈希映射,key 为每个数的值,value 为每个数出现的频率。最后找到 value = 1 的数返回。 异或运算,直接进行异或操作求值。不使用额外空间。 异或运算(XOR)解题是最优雅的解法,且不使用额外...
- 下一篇
深入理解JVM:元空间大小详细解析
前言 JVM加载类的时候,需要记录类的元数据,这些数据会保存在一个单独的内存区域内,在Java 7里,这个空间被称为永久代(Permgen),在Java 8里,使用元空间(Metaspace)代替了永久代。永久代和元空间保存的数据并不完全一样,永久代中还保存另一些与类的元数据无关的杂项。 在Java 7里将字符串常量从永久代移动到了堆区域,但是永久代并没有完全改造完成。直到Java 8,永久代的改造才算完全搞定,在元空间中保存的数据比永久代中纯粹很多,就是类的元数据,这些信息只对编译期或JVM的运行时有用。 理论学习 使用Java 8以后,关于元空间的JVM参数有两个:-XX:MetaspaceSize=N和 -XX:MaxMetaspaceSize=N,对于64位JVM来说,元空间的默认初始大小是20.75MB,默认的元空间的最大值是无限。MaxMetaspaceSize用于设置metaspace区域的最大值,这个值可以通过mxbean中的MemoryPoolBean获取到,如果这个参数没有设置,那么就是通过mxbean拿到的最大值是-1,表示无穷大。由于调整元空间的大小需要Full...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境