Appearance
common-core核心包 ¶
TIP
包含项目执行时必须的一系列注解、枚举、基础类、基础接口、基础异常等相关对象定义,是系统开发和运行必不可少的一个模块。
注解 ¶
BigField数据库大字段标识注解,详细使用见MyBatis-Plus扩展模块CountTime获取方法执行的时间DataVersionLog数据版本日志注解,添加到要记录版本数据的数据库实体类上,详细使用见审计日志模块IgnoreAuth忽略鉴权注解,可以加在Controller的方法或类上,访问时不在进行鉴权,加在非Controller的地方无效,详细使用见登录鉴权模块JobLog定时任务日志记录注解,控制是该定时方法是否需要记录日志,详细使用见Quartz定时任务模块NestedPermission嵌套权限控制注解,需要配合Permission注解一起使用,主要用来解决在@Permission声明的方法调用其他子方法时, 忽略子方法执行时的数据权限拦截,详细使用见数据权限模块OperateLog操作日志记录注解,AOP处理类自动拦截,记录对应的操作行为,可以进行重复的标注,详细使用见审计日志模块PermCode权限码鉴权注解, 用在Controller及对应的请求方法上时,可以通过用户是否拥有该请求路径的权限码,来决定是否可以通行本次请求, 2.放在数据库实体类及字段上时,会在启用查询字段权限的时候,对用户没有权限码的字段不进行SQL查询Permission权限控制注解,可以添加到方法和类上,添加后所执行的SQL会进行数据权限相关的控制,详细使用见数据权限模块QueryParam查询参数构造注解,通过标注在实体类,可以让实体类转换成MyBatis-Plus的QueryWrapper查询构造器,
常量枚举类 ¶
CommonCode公共常量,包括公共字段名称、删除标记字段名一类的常量CommonErrorCode公用错误码常量ServletCodeServlet常量WebHeaderConstweb请求头常量
基础类 ¶
UserDetail用户类,只包含id、name,username三个核心属性,是SecurityUtil工具类返回的对象,如需要获取更详细的用户信息,需要自行查询BaseDto基础Dto类,包含主键,创建时间,最后修改时间,版本号四个属性KeyValuekey/value键值对象LabelValue通常用于返回给前台用来展示下拉列表的数据结构OrderParam排序参数PageParam分页查询参数ErrorResult错误响应类,业务出现异常后返回的响应类,携带链路追踪IDtrackId,可以用于追踪整个错误的请求链路,详见日志扩展模块ResResult正常响应类,用于进行响应值的返回PageResult分页响应类,用于响应分页数据Res返回工具类,可以快捷构造各种正常响应类
基础接口 ¶
EntityBaseFunction数据库entity基础声明方法,实现该接口将会有一个转换成Dto的方法ParamService参数获取服务(必须要有实现类,并注入到Spring容器中),见基础服务模块中的参数配置SystemKeyValueServicekey/value键值对象读写接口服务(必须要有实现类,并注入到Spring容器中),见基础服务模块UserDetailService用户信息接口服务(必须要有实现类,并注入到Spring容器中),用来进行一些用户信息的公共查询操作,主要用在不能依赖身份识别与访问管理(IAM)的模块
公共异常 ¶
BizException业务异常基类,常见的业务异常可以继承它DataNotExistException数据不存在异常ErrorCodeRuntimeException错误码异常基类FatalException致命异常基类,出现此异常意味着程序遇到了致命错误,无法继续执行下去,业务流程被中断OptimisticLockException乐观锁异常RepetitiveOperationException重复操作异常,常见于幂等控制SystemException系统类异常基类,出现此异常说明系统遇到了问题BizException业务异常基类,出现此异常说明业务出现异常,但不是致命异常,还可以继续进行运行UnSupportOperateException不支持的操作异常UnSupportReadException不支持的读取操作ValidationFailedException参数验证失败异常,作为的BizException异常的子类
基础工具类 ¶
BigDecimalUtil大数工具类,处理BigDecimal类型的简单加减乘除等操作CertUtil证书工具类, 用户获取证书信息等操作CollUtil集合工具类,扩展自hutool的工具类FileUtil文件操作工具类,扩展自hutool的工具类LocalDateTimeUtilJDK8时间工具类,扩展自hutool的工具类RegexUtil正则验证工具类,提供一些默认的校验方法,例如校验邮箱号、手机号等ResultConvertUtil结果转换工具类工具类,主要用于Dto与Entity之间的转换SqlInjectionUtilsql注入处理工具类TreeBuildUtil构建数据树工具类,见TreeBuildUtil使用说明ValidationUtil属性校验工具类
枚举和其他 ¶
ValidationGroup校验分组标记,提供了增加(add)、编辑(edit)、删除(delete)、查询(query)四种常见场合的分组类标识
TreeBuildUtil使用说明 ¶
功能是将一个
List列表类型的数据,转换成树状列表的结果
对象结构要求 ¶
需要有主键(id)、关联父类的主键(pid)、包含叶子节点的列表(Children),这三个字段是必须存在的,举个栗子:
java
public class RegionDto {
@Schema(description = "主键编码")
private Integer id;
@Schema(description = "上级行政区域id")
private Integer pid;
@Schema(description = "名称")
private String name;
@Schema(description = "下一级行政区域")
private List<RegionDto> children;
}参数说明 ¶
list要进行转换的列表pid一级节点的父级id,通常为nullgetId获取主键的方法方法引用getPid获取关联父级节点主键的方法引用setChildren设置子节点列表的方法引用comparator节点顺序的排序规则
示例 ¶
java
/**
* 递归建树
*
* @param permissions 查询出的菜单数据
* @return 递归后的树列表
*/
private List<PermMenuDto> recursiveBuildTree(List<PermMenuDto> permissions) {
return TreeBuildUtil.build(permissions, null, BaseDto::getId,PermMenuDto::getParentId,PermMenuDto::setChildren,Comparator.comparingDouble(PermMenuDto::getSortNo));
}主要依赖 ¶
lombok私有依赖,用于简化一系列java代码的写法commons-lang3jackson-databindjackson数据绑定commons-collections4commons-textcommons-codeccommons-ioguavaGoogle 出的 Guava 是Java 核心增强的库,应用非常广泛。hutool国产工具类hibernate-validator属性校验javax.servlet-apiswagger-annotationsswagger3注解依赖springdoc-openapi-commonswagger3的实现springdoc框架,引入这个包是为了引入相关依赖slf4j-api日志门面
