# CommonToolkit
**Repository Path**: eternalstone/CommonToolkit
## Basic Information
- **Project Name**: CommonToolkit
- **Description**: CommonToolkit是一个公共基础工具包,封装了一些通用类和工具,提供了一些开发者能力,帮助您快速启动一个轻量、通用的java-web项目
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2023-10-08
- **Last Updated**: 2023-10-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# CommonToolkit
## 简介
CommonToolkit是一个公共基础工具包,封装了一些通用类和工具,提供了一些开发者能力,帮助您快速启动一个轻量、通用的java-web项目
## 导入
**SpringBoot项目导入:**
```
引入普通工具包
io.github.eternalstone
common-toolkit
${version}
引入web项目的一些基础能力
io.github.eternalstone
common-toolkit-web
${version}
```
## 用法
提供了统一返回对象、全局异常定义与捕获、常用工具类、常用算法等能力
### 基础用法
#### 统一返回对象和通用模型
WebApiRes:提供了一些快捷方法以直接返回数据
return WebApiRes.success()
return WebApiRes.failure()
PageResult || PageList: 分页统一返回对象,用于mysql分页操作,若后续需要操作其他存储库,可扩展此类
TablePage: 流式分页返回对象,用户下拉翻页的分页形式,不适用于跳页
#### 全局异常类和全局异常码
```
io.github.eternalstone.common.toolkit.exception:
GlobalException:全局异常,自定义异常基类,所有自定义异常继承此类
BizException:业务异常
io.github.eternalstone.common.toolkit.enums.GlobalErrorCode: 全局异常状态码
```
#### 业务断言工具类
```
io.github.eternalstone.common.toolkit.asserts.BizAssert: 方便实现业务的判断与异常抛错
```
#### 常用算法包
```
io.github.eternalstone.common.toolkit.security:
aes: AES算法加解密
mac: mac算法
md5: md5算法
rsa: rsa算法
sha: sha256算法
```
#### 常用工具包
```
DateUtil: 时间操作工具
JsonUtil:json序列化
ObjectUtils: 对象操作
RegexUtil: 常用正则
SmsUtil: 短信赋值操作
SnowFlakeUtil: 雪花算法
VersionUtil:版本比对操作
...
```
### web层用法
#### 全局http返回json自定义格式
@EnableCustomJsonConverter:
注解到启动类或某个配置类上开启全局返回json的格式化,详情如下:
1.List类型字段为null时输出[]而非null
2.显示空字段
3.字符串类型字段为null时间输出""而非null
4.Boolean类型字段为null时输出false而null
5.数值字段如果为null,输出为0,而非null
6.时间格式yyyy-MM-dd HH: mm: ss
#### 全局跨域配置
```
@EnableGlobalCrossOrigin: 注解到启动类或某个配置类上开启全局跨域配置
//允许请求源
String[] origins() default {};
//允许请求头
String[] allowedHeaders() default {};
//暴露请求头
String[] exposedHeaders() default {};
//允许请求方式
String[] allowedMethods() default {};
```
#### 全局异常捕获
@EnableGlobalExceptionHandler: 注解到启动类或某个配置类上开启全局异常捕获,返回统一错误码
#### 全局请求日志打印
```
@EnableRequestLog: 注解到启动类或某个配置类上, 并且需要在配置文件配置切点等信息
需要依赖Spring AOP
org.springframework.boot
spring-boot-starter-aop
```
```yaml
controller:
log:
enabled: true
level: FULL
pointcut:
expression: execution(* com.test.controller..*.*(..))
warn:
rt: 2000
```
#### 全局Xss防护
```
@EnableXssDefence: 注解到启动类或某个配置类上
//是否全局trim文本
boolean trim() default false;
//xss清理模式
XssMode mode() default XssMode.CLEAR;
//[clear 专用] 是否保留换行
boolean prettyPrint() default false;
//[clear 专用] 使用转义,默认关闭
boolean escape() default false;
//拦截xss请求路径
String[] includes() default { "/**" };
//放行xss请求路径
String[] excludes() default {};
```