Web快速验证脚手架
用于快速搭建一个SpringBoot Web项目后端 验证某些思路或者测试某些组件
想法来源于 测试某些后端代码 或者想试试新框架组件 每次都重新搭个框架 也太麻烦了 目标代码或组件 没集成进来 先调试后端框架许久 所以决定预先搭好一个可用的基础骨架 后续可以直接编写业务代码 或者集成新组件
也可作为开发项目的基础框架(大概吧......)
已预先按处理层分模块设计: 分为dao,service,Controller,web-view模块,层次清楚,低耦合,高内聚。
不需要编写冗长的基础框架配置 不需要搭建框架时的报错调试
在Web层直接编写 你需要的Controller类 在Service层直接编写 你需要的Service类
Dao层使用JPA+QueryDSL 默认已集成大部分CRUD方法 PO包内直接部署数据实体对象 集成实体基类后自动支持JPA审计 创建人 创建时间 最后修改人 最后修改时间自动更新
全局请求集成请求流水号(RequestId) 方便链路追踪和调试
使用全局异常处理+非正常流程直接抛业务异常方式 避免非正常流程的样板重复异常处理过程
使用切面事务处理 默认支持大部分CRUD方法的对应等级事务 不需要在Service方法上到处添加@Transcation
使用三剑客 lombok+mapstruct+hibernate-validator 进行代码简化 消除冗长的大量重复样板代码
核心框架
服务端校验
快速工具工具包
代码简化
关系映射持久化框架
数据库
数据库连接池
日志管理
构建打包
FastProject
├─.gradle gradle配置目录
├─database 数据库文件
├─docker 容器配置文件
├─gradle gradle包装器目录
├─log 日志
├─fast-app 应用模块
├─fast-common 通用组件模块
├─fast-dao 数据库借口模块
├─fast-service 业务服务模块
└─fast-web Web接口层模块
GlobalExceptionResolverAdvice.java
全局异常处理类 所有业务异常和一些已知的框架层异常都在此做出处理
业务中代码在出现错误后直接抛出业务异常 由全局异常处理器处理 不用写单独的处理流程GlobalRequestInterceptor.java
全局请求拦截器 在请求到达接收响应的控制层Action类进行预处理
可以设置一些后续需要使用的请求上下文内容 这里设置了全局请求流水号 requestId
2.事务管理器 fast-app
TxAdviceConfig.java
基于切面的事务管理器 配置了org.fast.project.service
包下的所有方法的自动事务管理 支持发生异常的情况下 方法事务自动回滚 所以在 @Service
层不需要手动在方法上添加 @Transactional 注解进行事务自动回滚
3.持久化配置 fast-app
JpaAndQueryDslConfig.java
QueryDSL配置类 注入JPAQueryFactory Bean
以启用QueryDSL支持
在 JpaAndQueryDslConfig.java
类上添加注解@EnableJpaAuditing
已启用JPA审计支持
JpaAuditingAware.java
配置JPA审计功能
BaseEntity.java
持久化对象基类 支持JPA自动审计 可以自动创建 创建人 创建时间 最后修改人 最后修改时间四个属性
并支持在创建时 更新时 自动填充
使用Java简化三剑客 lombok+mapstruct+hibernate-validator 进行代码简化
使用logback作为日志框架 spring-logback.xml
为日志配置文件
已引入Spring原生日志的配置 启用了彩色日志打印
启用了JPA SQL日志格式化 SQL 参数打印
支持根据spring侧写文件传入不同的日志配置
fast-common 使用 AbstractBusinessException.java
作为全局业务异常的基类
业务异常流程使用业务异常类处理 不影响正常流程
fast-common Json对象转换工具类 JsonUtil.java
支持Json到对象 对象到Json的转换
SQL查询帮助工具类 QueryHelpUtil.java
支持like查询字符串生成等
线程本地对象工具 ThreadLocalUtil.java
支持线程本地对象属性保存等
在fast-web src/.../vo目录下部署传送到请求端的数据对象视图 在fast-service src/.../do目录下部署服务处理的业务对象视图 在fast-dao src/.../po目录下部署对应数据库表的持久化对象视图
使用 springboot application.yml
配置文件 支持多侧写配置 本地开发环境 测试环境 生产环境 启动时 可使用 spring.profiles.active="prod"
来设置不同环境的配置文件
gradle build
命令 执行构建 构建完毕后会生成jar包
gradle build-docker-image
命令 执行生成docker镜像任务
gradle bootjar
命令 执行生成bootjar包任务
在 ./docker目录下已配置好dockerfile 使用 alpine:3.15.0
作为基础镜像
使用 mysql 8.0.20
作为数据库
在 ./database 目录下已配置好数据库镜像获取文件 docker-db.md
按说明拉取数据库即可
使用 init_db.sql文件初始化数据库
FastProjectMain.java
主类启动base-1.0.0 基础版首个发布
1.0.1 新增sql修改 ,修改gradle删除部分无用依赖
1.1.0 升级为Gradle多模块项目 重构项目结构和依赖管理
1.1.1 升级全部依赖为最新版本 依赖版本统一管理
1.2.0 升级SpringBoot为2.6.X 升级Gradle 7.X+ 升级JDK为Java17
1.2.1 支持在根目录打包 新增容器分层构建 新增spring监控
1.2.2 完善可用的分层容器构建
1.2.3 修改为多层配置文件
1.2.4 小版本迭代
1.2.5 升级SpringBoot为2.7.X 完善对JPA审计支持
1.2.6 修复一些问题 更新到sec分支相同的基线
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。