依赖jar包

引入包 版本
jdk 1.8
spring boot 2.7.9
spring-boot-starter-web 2.7.9
spring-boot-starter-webflux 2.7.9
spring-boot-starter-undertow 2.7.9
javase 3.4.1
allbs-common 2.0.0
spring-boot-starter-validation 2.7.9

使用

添加依赖

1
2
3
4
5
<dependency>
<groupId>cn.allbs</groupId>
<artifactId>allbs-core</artifactId>
<version>2.0.2</version>
</dependency>
1
implementation 'cn.allbs:allbs-core:2.0.2'
1
implementation("cn.allbs:allbs-core:2.0.2")

启动配置打印

image-20220729102320096

二维码工具

生成二维码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
QrCode.form("这是二维码内容")
// 默认 512,可以不设置
.size(512)
// 默认白色,可以不设置
.backGroundColor(Color.WHITE)
// 默认黑色,可以不设置
.foreGroundColor(Color.BLACK)
// 默认 UTF_8,可以不设置
.encode(Charsets.UTF_8)
// 默认 png,可以不设置
.imageFormat("png")
// 删除白边,默认为 true,可以不设置
.deleteMargin(true)
// 设置二维码 logo,支持 URL 远程图片、文件和流
.logo("D:/qrcode/avater.jpg")
// 写出,同类方法有 toImage、toStream、toBytes
.toFile("D:/qrcode/qrCode.png");
}

读取二维码

1
2
String text = QrCode.read("D:/qrcode/qrCode.png");
System.out.println(text);

image-20220808105117676

java8时间转换

所有返回类型为java8时间的LocalDateTime、LocalDate等转为常用时间字符串,不走接口时或者使用map时将不会进行转换,需要手动转换成需要的格式

如,该工具包会自动将yyyy-MM-dd'T'HH:mm:ss转为yyyy-MM-dd HH:mm:ss输出,同时自动将yyyy-MM-dd HH:mm:ss转为yyyy-MM-dd'T'HH:mm:ss输入

全局异常统一返回结果

启动类添加注解 @AllbsExceptionAdvice

该包会将异常统一包装为R返回

image-20220808131618097

记录业务异常

添加AllbsErrorEvent监听

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import cn.allbs.common.constant.StringPool;
import cn.allbs.core.advice.AllbsErrorEvent;
import cn.hutool.core.bean.BeanUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.EventListener;
import org.springframework.core.annotation.Order;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class ExceptionRecordListener {

@Async
@Order
@EventListener({AllbsErrorEvent.class})
public void saveErrorLog(AllbsErrorEvent event) {
// 可直接将event内容保存数据库
Map<String, Object> map = BeanUtil.beanToMap(event);
StringBuilder sb = new StringBuilder();
map.forEach((k, v) -> sb.append(k).append(StringPool.COLON).append(v).append("\n"));
log.error(sb.toString());
}
}

image-20220808133547183

全局结果统一返回

启动类添加注解 @AllbsResponseAdvice

该包会将所有结果统一包装为R返回,如果已经使用了R包装则忽略

配置中ignore节点下的uri会忽略包装,直接返回原始结果

1
2
3
4
5
ignore:
urls:
- /swagger-resources
- /v2/api-docs
- /core/ignoreTestR

方法上添加注解@IgnoreAdvice

image-20230327150549333