spring boot中一些工具的封装,如定制开发环境打印信息、入参及返回的时间格式化、二维码工具等。

依赖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.5</version>
</dependency>

启动配置打印

spring boot中一些工具的封装,如定制开发环境打印信息、入参及返回的时间格式化、二维码工具等。
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);
spring boot中一些工具的封装,如定制开发环境打印信息、入参及返回的时间格式化、二维码工具等。
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输入

全局异常统一返回结果

启动类添加注解 {% label @AllbsExceptionAdvice red %}

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

spring boot中一些工具的封装,如定制开发环境打印信息、入参及返回的时间格式化、二维码工具等。
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());
    }
}
spring boot中一些工具的封装,如定制开发环境打印信息、入参及返回的时间格式化、二维码工具等。
image-20220808133547183

全局结果统一返回

启动类添加注解 {% label @AllbsResponseAdvice red %}

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

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

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

方法上添加注解@IgnoreAdvice

spring boot中一些工具的封装,如定制开发环境打印信息、入参及返回的时间格式化、二维码工具等。
image-20230327150549333

原文始发于微信公众号(询于刍荛):spring boot中一些工具的封装,如定制开发环境打印信息、入参及返回的时间格式化、二维码工具等。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/284462.html

(0)
李, 若俞的头像李, 若俞

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!