项目脚手架 - 《Spring Boot + MyBatis + MyBatis Generator》
前言
最近启动了一个新的项目发现,每当一个新项目的启动往往需要从头搭建一个“框架”,其中虽然很多基础代码可以Copy,但也会浪费不少时间。
基于这个情况,我打算在GitHub上创建了一个公开库scaffold用来存放平时常用的脚手架项目。
脚手架仓库地址:https://github.com/majian159/scaffold
规划
实现的脚手架有:
- Java
- Spring Boot + MyBatis
规划的脚手架有:
- Java
- Spring Boot + JPA
- Spring Boot + MyBatis
- Web
- Ant design Pro
- antd
springboot-mybatis-scaffold
第一波因为项目需求先传了 基于 sb + mybatis 的脚手架,其实我个人更喜欢 sb + jpa + ddd 的脚手架,后续在整理出来。
介绍
这是一个基于 SpringBoot + MyBatis + MyBatis Generator 的脚手架项目。
脚手架默认实现了一个 department RESTful API,用来演示。
脚手架集成内容
- Spring Boot
- Spring Security
- MyBatis
- MyBatis Generator
- PageHelper
- Swagger-UI
目录结构
scaffold
├── scaffold-api # REST API 模块
├── scaffold-common # 公共代码模块
└── scaffold-mbg # MyBatis Generator 及生成的内容
环境
- JDK8
- Lombok
脚手架配置
项目、程序包名称
使用 IDE 等工具进行批量全局替换。
Spring
- 开启 @Async 线程池使用
ForkJoinPool.commonPool() @EnableScheduling@EnableSwagger2- datasource
- MySQL
- hikari
- 最小空闲连接 5
- 连接超时 15秒
- 最大连接池大小 20
- jackson
- 不包含 null 值的属性
MyBatis
- Mapper扫描路径
- 当前项目下的 dao/*.xml (项目中自定义的Mapper xml)
- 全局 mapper/*.xml (用于mbg生成的Mapper xml)
MBG
这边只是简化了
generatorConfig.xml的配置,如有个性化需求可直接修改generatorConfig.xml
scaffold-mbg/src/main/resources/generator.properties
| 配置键 | 说明 | 默认值 |
|---|---|---|
| jdbc.driverClass | JDBC驱动类 | com.mysql.cj.jdbc.Driver |
| jdbc.connectionURL | JDBC URL | jdbc:mysql://localhost/scaffold?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai |
| jdbc.userId | 数据库用户名 | root |
| jdbc.password | 数据库密码 | root |
| common.basePackage | 基础的包名 | com.scaffold.springboot.mybatis.mbg |
| common.basePath | 基础的路径 | scaffold-mbg |
Application
scaffold-api/src/main/resources/application.yml
| 配置键 | 说明 | 默认值 |
|---|---|---|
| application.basePackage | 基础 package,用来简化项目改名后带来的负担 | com.scaffold.springboot.mybatis |
RestControllerAdvice
当 Controller 抛出 ServiceException, ApiException 异常时会经由 Advice 自动包装成 ApiErrorViewModel, 并返回对应的 HttpStatusCode.
写在最后
这是一个高个人意愿的脚手架仓库,大家可以不用完全使用,只是参考部分内容,希望对大家有所帮助
脚手架仓库地址:https://github.com/majian159/scaffold
"阅读原文" 可直达 GitHub 库
项目脚手架 - 《Spring Boot + MyBatis + MyBatis Generator》的更多相关文章
- spring boot集成mybatis(3) - mybatis generator 配置
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- Spring Boot集成MyBatis开发Web项目
1.Maven构建Spring Boot 创建Maven Web工程,引入spring-boot-starter-parent依赖 <project xmlns="http://mav ...
- Spring Boot学习笔记——Spring Boot与MyBatis的集成(项目示例)
1.准备数据库环境 # 创建数据库 CREATE DATABASE IF NOT EXISTS zifeiydb DEFAULT CHARSET utf8 COLLATE utf8_general_c ...
- 【spring boot】14.spring boot集成mybatis,注解方式OR映射文件方式AND pagehelper分页插件【Mybatis】pagehelper分页插件分页查询无效解决方法
spring boot集成mybatis,集成使用mybatis拖沓了好久,今天终于可以补起来了. 本篇源码中,同时使用了Spring data JPA 和 Mybatis两种方式. 在使用的过程中一 ...
- Spring Boot整合Mybatis完成级联一对多CRUD操作
在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...
- spring boot集成mybatis(1)
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- spring boot集成mybatis(2) - 使用pagehelper实现分页
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- Spring Boot 整合 Mybatis 实现 Druid 多数据源详解
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “清醒时做事,糊涂时跑步,大怒时睡觉,独处时思考” 本文提纲一.多数据源的应用场景二.运行 sp ...
- 使用intelliJ创建 spring boot + gradle + mybatis站点
Spring boot作为快速入门是不错的选择,现在似乎没有看到大家写过spring boot + gradle + mybatis在intellij下的入门文章,碰巧.Net同事问到,我想我也可以写 ...
- Spring Boot整合Mybatis并完成CRUD操作
MyBatis 是一款优秀的持久层框架,被各大互联网公司使用,本文使用Spring Boot整合Mybatis,并完成CRUD操作. 为什么要使用Mybatis?我们需要掌握Mybatis吗? 说的官 ...
随机推荐
- VI.应用-Trajectory Data Mining
$textbf{Trajectory Data Mining: An Overview}$ 很好的一篇概述,清晰明了地阐述了其框架,涉及内容又十分宽泛.值得细读. 未完成,需要补充. $textbf{ ...
- python爬虫之字体反爬
一.什么是字体反爬? 字体反爬就是将关键性数据对应于其他Unicode编码,浏览器使用该页面自带的字体文件加载关键性数据,正常显示,而当我们将数据进行复制粘贴.爬取操作时,使用的还是标准的Unicod ...
- 原生php导出csv文件
require('./db/dbManager.php'); require('./session.php'); require('./department_utils.php'); class Ex ...
- 解决微信小程序视频组件层级过高的问题
本文首发于我的个人博客:http://www.fogcrane.org 前言 在微信小程序的开发中,总有一些"VIP"组件,他们的层级,高得让人抓狂,总是凌驾于很多其他低层级组件之 ...
- JS动画之缓动函数分析及动画库
上一篇讲了JS动画定时器相关知识,这一篇介绍下缓动函数及流行的动画库. 熟悉的图 实际使用 jquery animate()+jquery.easing插件的使用: $(selector).anima ...
- JavaScript两道例题
1.有一个卡车司机肇事后想逃跑,但是被三个人看见其车牌号码,但是没有看全.一号说:车牌的前两位是一样的,二号说:车牌的后两位是一 样的,但是与前两位不一样,三号说:车牌是一个数字的平方,请计算车辆号牌 ...
- Python自定义模块
自定义模块 自定义模块(也就是私人订制),我们要自定义模块,首先就要知道什么是模块 一个函数封装一个功能,比如现在有一个软件,不可能将所有程序都写入一个文件,所以咱们应该分文件,组织结构要好,代码不冗 ...
- plantUML最佳实践
plantUML 使用plantUML中的活动图用来画流程图很好用; 但类图等就不很好用; 个人体会如下: • 时序图 推荐 • 用例图 一般 • 类 图 不推荐, 用Visual Paradigm或 ...
- SQL中rownumber的用法
1)一次排名: 语法:row_number() over(order by 字段 desc/asc):按照某个字段排名 1.1.查询语句: 1.2.查询结果:查询结果按照薪水进行排名 2)先分组后排名 ...
- js中的堆和栈
http://www.jscwwd.com/article/5e533ae2552a8e2bf45d3d69 这里先说两个概念:1.堆(heap)2.栈(stack)堆 是堆内存的简称.栈 是栈内存的 ...