Appearance
common-core核心包 ¶
TIP
包含项目执行时必须的一系列注解、枚举、基础类、基础接口、基础异常等相关对象定义,是系统开发和运行必不可少的一个模块。
注解 ¶
BigField
数据库大字段标识注解,详细使用见MyBatis-Plus扩展模块CountTime
获取方法执行的时间DataVersionLog
数据版本日志注解,添加到要记录版本数据的数据库实体类上,详细使用见审计日志模块Idempotent
幂等性拦截注解,用于拦截前端重复提交的请求,详细见幂等处理器模块IgnoreAuth
忽略鉴权注解,可以加在Controller
的方法或类上,访问时不在进行鉴权,加在非Controller
的地方无效,详细使用见登录鉴权模块JobLog
定时任务日志记录注解,控制是该定时方法是否需要记录日志,详细使用见Quartz定时任务模块NestedPermission
嵌套权限控制注解,需要配合Permission注解一起使用,主要用来解决在@Permission
声明的方法调用其他子方法时, 忽略子方法执行时的数据权限拦截,详细使用见数据权限模块OperateLog
操作日志记录注解,AOP
处理类自动拦截,记录对应的操作行为,可以进行重复的标注,详细使用见审计日志模块PermCode
权限码鉴权注解, 用在Controller及对应的请求方法上时,可以通过用户是否拥有该请求路径的权限码,来决定是否可以通行本次请求, 2.放在数据库实体类及字段上时,会在启用查询字段权限的时候,对用户没有权限码的字段不进行SQL查询Permission
权限控制注解,可以添加到方法和类上,添加后所执行的SQL会进行数据权限相关的控制,详细使用见数据权限模块QueryParam
查询参数构造注解,通过标注在实体类,可以让实体类转换成MyBatis-Plus
的QueryWrapper
查询构造器,详细使用见超级查询器模块
常量枚举类 ¶
CommonCode
公共常量,包括公共字段名称、删除标记字段名一类的常量CommonErrorCode
公用错误码常量ServletCode
Servlet常量WebHeaderConst
web请求头常量
基础类 ¶
UserDetail
用户类,只包含id、name,username三个核心属性,是SecurityUtil
工具类返回的对象,如需要获取更详细的用户信息,需要自行查询BaseDto
基础Dto类,包含主键,创建时间,最后修改时间,版本号四个属性KeyValue
key/value键值对象LabelValue
通常用于返回给前台用来展示下拉列表的数据结构OrderParam
排序参数PageParam
分页查询参数ErrorResult
错误响应类,业务出现异常后返回的响应类,携带链路追踪IDtrackId
,可以用于追踪整个错误的请求链路,详见日志扩展模块ResResult
正常响应类,用于进行响应值的返回PageResult
分页响应类,用于响应分页数据Res
返回工具类,可以快捷构造各种正常响应类
基础接口 ¶
EntityBaseFunction
数据库entity基础声明方法,实现该接口将会有一个转换成Dto的方法ParamService
参数获取服务(必须要有实现类,并注入到Spring容器中),见基础服务模块中的参数配置SystemKeyValueService
key/value键值对象读写接口服务(必须要有实现类,并注入到Spring容器中),见基础服务模块UserDetailService
用户信息接口服务(必须要有实现类,并注入到Spring容器中),用来进行一些用户信息的公共查询操作,主要用在不能依赖身份识别与访问管理(IAM)
的模块
公共异常 ¶
BizException
业务异常基类,常见的业务异常可以继承它DataNotExistException
数据不存在异常ErrorCodeRuntimeException
错误码异常基类FatalException
致命异常基类,出现此异常意味着程序遇到了致命错误,无法继续执行下去,业务流程被中断OptimisticLockException
乐观锁异常RepetitiveOperationException
重复操作异常,常见于幂等控制SystemException
系统类异常基类,出现此异常说明系统遇到了问题BizException
业务异常基类,出现此异常说明业务出现异常,但不是致命异常,还可以继续进行运行UnSupportOperateException
不支持的操作异常UnSupportReadException
不支持的读取操作ValidationFailedException
参数验证失败异常,作为的BizException
异常的子类
基础工具类 ¶
BigDecimalUtil
大数工具类,处理BigDecimal
类型的简单加减乘除等操作CertUtil
证书工具类, 用户获取证书信息等操作CollUtil
集合工具类,扩展自hutool
的工具类FileUtil
文件操作工具类,扩展自hutool
的工具类LocalDateTimeUtil
JDK8
时间工具类,扩展自hutool
的工具类RegexUtil
正则验证工具类,提供一些默认的校验方法,例如校验邮箱号、手机号等ResultConvertUtil
结果转换工具类工具类,主要用于Dto
与Entity
之间的转换SqlInjectionUtil
sql注入处理工具类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-lang3
jackson-databind
jackson
数据绑定commons-collections4
commons-text
commons-codec
commons-io
guava
Google 出的 Guava 是Java 核心增强的库,应用非常广泛。hutool
国产工具类hibernate-validator
属性校验javax.servlet-api
swagger-annotations
swagger3
注解依赖springdoc-openapi-common
swagger3
的实现springdoc
框架,引入这个包是为了引入相关依赖slf4j-api
日志门面