allbs工具类说明 - 基础工具包
依赖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 |
使用
添加依赖
<dependency>
<groupId>cn.allbs</groupId>
<artifactId>allbs-core</artifactId>
<version>2.0.2</version>
</dependency>
implementation 'cn.allbs:allbs-core:2.0.2'
implementation("cn.allbs:allbs-core:2.0.2")
启动配置打印
二维码工具
生成二维码
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");
}
读取二维码
String text = QrCode.read("D:/qrcode/qrCode.png");
System.out.println(text);
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返回
记录业务异常
添加AllbsErrorEvent
监听
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());
}
}
全局结果统一返回
启动类添加注解 @AllbsResponseAdvice
该包会将所有结果统一包装为R返回,如果已经使用了R包装则忽略
配置中ignore节点下的uri会忽略包装,直接返回原始结果
ignore:
urls:
- /swagger-resources
- /v2/api-docs
- /core/ignoreTestR
方法上添加注解@IgnoreAdvice
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ALLBS!
评论