跳到主要内容

背景

1. zj Common java 工具类

1.1 简介

常用的 工具类

  • com.zj.common.exception 异常处理相关的包
  • com.zj.common.file 文件处理相关的工具类
  • com.zj.common.json Json 转换的工具类
  • com.zj.common.mybatis mybatis 生成相关的 mapper.xml 文件的工具

点击 github 源码地址 直达仓库,欢迎 star 和 follower

1.2 使用方法

在 maven 的 pom.xml 中。如果没有添加repositories ,可以添加一个 repositories, 如果添加了,就直接追加 <repository>...</repository> 中的内容。

    <repositories>
<repository>
<id>zj-maven</id>
<url>https://gitee.com/junzhou134/maven/raw/master</url>
</repository>
</repositories>

然后再在 <dependencies>...</dependencies> 引入即可:

        <dependency>
<groupId>com.zj</groupId>
<artifactId>common</artifactId>
<version>0.0.1</version>
</dependency>

2. 异常处理类

在开发一些后端项目时,我们常常会定义一些通用的处理类,来处理异常信息,返回 json 数据时,等等场景,一般都是固定的格式,然而常常我们在每次新建项目时,都需要去新建这些实体类或者工具类,这里的 com.zj.common.exception 包下,提供了基础的一些异常处理工具。

2.1 ResultCode 统一返回 code 枚举

com.zj.common.exception.ResultCode 枚举类主要定义了错误的返回数据结构,其中主要包含 codemessage 去描述一个异常信息,每次在处理一些业务异常时,我们通过增加枚举来描述异常的一些情况,这样的好处就是方便我们日常开发中的错误处理。更好的定位异常。

2.2 BusinessException 业务异常类

com.zj.common.exception.BusinessException 业务异常类,主要方便我们在抛一些业务异常时,进行统一处理。其中包含了 com.zj.common.exception.ResultCode 的一些描述,可以方便我们对异常描述和统一处理,使项目中的代码更加清晰。

2.3 ValidateUtil 最好的一种业务异常处理工具类

com.zj.common.exception.ValidateUtil 为什么是最好的一种业务异常处理工具类?

  1. 减少 if ... else ... 条件判断,在日常的开发中,我们常常需要判断某个数据是否为满足某个条件的情况,如果不满足条件,则抛出对应的业务异常,比如:
...
public void updateFill(MetaObject metaObject) {
log.info("updateFill start ...");
final LoginUserDTO currentUser = userUtils.getCurrentUser();
if (Objects.isNull(currentUser) || StringUtils.isBlank(currentUser.getUsername())) {
throw new BusinessException(ResultCode.DB_USER_NOT_LOGIN_NO_PERMIT);
}
LocalDateTime currentTime = LocalDateTime.now();
this.setFieldValByName("updateTime", currentTime, metaObject);
this.setFieldValByName("updateId", currentUser.getUsername(), metaObject);
}
...

其中的 if 判断,可以直接使用工具类进行统一处理。如下: 可以看到上面的 5-7 行的代码,统一由 下面的第4 行代码代替了,意思也一样,简明的直到,这个地方做了异常判断。

    public void updateFill(MetaObject metaObject) {
log.info("updateFill start ...");
final LoginUserDTO currentUser = userUtils.getCurrentUser();
ValidateUtil.exceptionByTrue(Objects.isNull(currentUser) || StringUtils.isBlank(currentUser.getUsername()),
ResultCode.DB_USER_NOT_LOGIN_NO_PERMIT);
LocalDateTime currentTime = LocalDateTime.now();
this.setFieldValByName("updateTime", currentTime, metaObject);
this.setFieldValByName("updateId", currentUser.getUsername(), metaObject);
}

ValidateUtil 包含的方法如图所示:

方法名参数描述
exceptionByNotNull1. object: 待判断的对象。
2.exception: 如果不满足条件,返回的异常信息
如果 object 不为 null, 则抛出对应的异常信息
exceptionByNull1. object: 待判断的对象。
2.exception: 如果不满足条件,返回的异常信息
如果 object 为 null, 则抛出对应的异常信息
requireNonNull1. object: 待判断的对象。
2.exception: 如果不满足条件,返回的异常信息
请求非空对象,如果为空,抛出对应的 exception 对象。如果不为空,直接返回对应的对象
exceptionByTrue1. flag: 是否满足条件
2. resultCode: 如果不满足条件,则抛出对应的业务异常
如果不满足条件,则抛出对应的业务异常
exceptionByFalse1. flag: 是否满足条件
2. resultCode: 如果不满足条件,则抛出对应的业务异常
如果不满足条件,则抛出对应的业务异常

3. 文件处理类 FileUtils

  • List<String> readLines(String pathString): 获取 pathString 文件中的所有行数据。放在一个 List 中返回。
  • Map<Integer, String> findContentByKeyWord(String pathString, String keyword): 从路径 pathString 中查询指定关键字 keyword 的文件内容。

4. json 转换工具类 JsonUtil

其中包含的方法如下:

json 转换工具类

5. mybatis 结果转换类 MybatisResultMapUtil

  • String getResultMap(Class<?> clazz) : 将 clazz 转换为 mybatis 的 xml 中使用的 resultMap。

6. etc. 待更新

💡本文声明

转载请注明出处,谢谢合作!转载本文请声明原文章链接如下:

原文链接: https://zhoujun134.github.io/docs/open/zj-common

作者: Z 不殊

Z 不殊 致力于分享有价值的信息和知识。我们尊重并保护知识产权。本文仅代表作者观点,不代表任何立场。 如果本文有所侵权,请联系作者删除或修改!

Loading Comments...