# web-unification-spring-boot-starter
**Repository Path**: qiwei_tj/web-unification-spring-boot-starter
## Basic Information
- **Project Name**: web-unification-spring-boot-starter
- **Description**: Springboot web 项目统一配置组件,包括统一响应体、全局异常处理、API 版本号匹配、API Query 参数验签等功能,基于 Springboot 模块化开发,starter 方式随引随用,统一通过配置文件配置,方便管理
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 2
- **Created**: 2023-08-09
- **Last Updated**: 2024-09-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# web-unification-spring-boot-starter
## 一、介绍
spring boot web 项目统一化配置组件
## 二、项目说明
本项目意在通过简单的配置完成对业务项目 API 的统一化、标准化定义
### 1、目录结构
包内目录结构如下
```text
com
└─xw
└─unification
│ WebUnificationTestApplication.java // 内部测试主启动类
│
├─annotations // 功能注解包
│
├─condition // 配置类条件包
│
├─config // 自动配置类包
│
├─constant // 常量包
│
├─dto // 统一响应体包
│
├─entity // 封装实体包
│ │
│ └─request // request 相关封装实体包
│
├─enums // 枚举包
│
├─exception // 异常包
│
├─handler // 处理器包,包括路径映射、统一响应、全局异常处理器
│
├─interceptor // 拦截器包
│
├─interfaces // 通用接口包,包括使用相关功能时需要继承的接口
│
├─test // 内部测试包
│ │
│ ├─controller
│ │
│ └─enums
│
└─utils // 模块工具包
```
## 三、使用教程
1. 克隆本项目到本地
```shell
git clone xxx.git xxx
cd xxx
```
2. 使用 maven cli 打包本地仓库
```shell
maven clean & install
```
3. 在自己项目中引入 gav 坐标,即可使用
```xml
com.xw
web-unification-spring-boot-starter
${web-unification.version}
```
## 四、配置说明
> 以下表中所有配置 key 均包括 `web.unification-config` 前缀
| | 配置 key | 说明 | 配置值范围 | 默认值 |
|:-----------------------:|:----------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------:|:-------------:|
| ***全局配置*** | web.unification-config.enable | 统一配置 starter 开关, true - 开启, false - 关闭, 关闭时该模块所有功能均不生效 | true \ false | true |
| ***API 版本配置*** ||||
| | web.unification-config.api-version.enable | API 版本控制配置开关, true - 开启, false - 关闭, 关闭时该功能不生效 | true \ false | false |
| | web.unification-config.api-version.version-match-strategy | API 版本号匹配策略
STRICT_EQUALS - 版本号严格相等
VALUE_EQUALS - 版本号值相等
MAX_IN_LOW - 版本号 <= 当前请求版本的最大版本号
MIN_IN_HIGH - 版本号 >= 当前请求版本的最小版本号 | STRICT_EQUALS
VALUE_EQUALS
MAX_IN_LOW
MIN_IN_HIGH | STRICT_EQUALS |
| ***API 签名验证*** ||||
| | web.unification-config.api-signature-check.enable | API 签名验证配置开关, true - 开启, false - 关闭, 关闭时该功能不生效 | true \ false | false |
| ***request body 可重复读*** ||||
| | web.unification-config.request-body-repeatable-read.enable | request body 可重复读配置开关, true - 开启, false - 关闭, 关闭时该功能不生效, 开启后每次调用 `request.getInputStream()` 都会新的输入流, 实现重复读取 request body | true \ false | false |
| ***统一响应处理*** ||||
| | web.unification-config.unified-response.enable | 统一响应处理配置开关, true - 开启, false - 关闭, 关闭时该功能不生效 | true \ false | false |
| ***全局异常处理*** ||||
| | web.unification-config.unified-exception.enable | 全局异常处理配置开关, true - 开启, false - 关闭, 关闭时该功能不生效 | true \ false | false |
1. xxxx
2. xxxx
3. xxxx
## 五、参与贡献
1. Fork 本仓库
2. 新建 Feature_xxx 分支
3. 提交代码
4. 新建 Pull Request