依赖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")

启动配置打印

image-20220729102320096

二维码工具

生成二维码

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);

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监听

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会忽略包装,直接返回原始结果

ignore:
  urls:
    - /swagger-resources
    - /v2/api-docs
    - /core/ignoreTestR

方法上添加注解@IgnoreAdvice

image-20230327150549333