引入BASE 模块后可以使用到一下工具类,他可以在 java环境,groovy环境中使用。
除此之外我们还引入了 hutool 工具类,请自行查阅相关文档。
上下文工具类-ContextUtil
主要提供当前用户上下文的信息
- IUser getCurrentUser() :获取当前线程的登录用户(LoginUser)
- String getCurrentUserId() :获取当前线程登录用户的ID
- String getCurrentUserName() :获取当前线程登录用户的名字
- String getCurrentUserAccount() : 获取当前线程用户的账户
- IGroup getCurrentGroup() :获取当前组织
- String getCurrentGroupId() :获取当前组织ID
- void setCurrentUserByAccount :通过账户设置当前线程用户,特殊场景下使用
List 转 Tree 工具类
主要将 list 类型的数据结构转成 树形,非常高效、有用。万条以内的树形数据从此告别异步加载
BeanUtils.listToTree
<T extends Tree> List<T> listToTree(List<T> list)
T 需要实现接口 com.dstz.base.api.model.Tree
Bean 属性 复制
用于 DTO 与 Model 属性的复制
BeanCopierUtils.transformBean :单个bean的copyUser source = new User(); //
UserDTO user = BeanCopierUtils.transformBean(Object source,UserDTO.class);
BeanCopierUtils.transformList:list类型的copy
List<User> sourceList // ... |
属性复制使用的 cglib,速度还是蛮快的,但是建议小场景的使用,如果大范围建议使用 mapStruct
Bean 校验
validate3.0规范的校验,使用的 hibernate 的 ValidatorFactory实现,可以使用 validateUtil 手动对某个bean执行校验判断
如果校验不通过将抛出 BusinessException 异常
ValidateUtil.validate(Object o); |
Rest 请求工具类
利用 RestTemplate 发起一个request请求,并中继 Token 信息
- RestTemplateUtil.post(String url, Object data, Class
responseType)
// 向一个地址发起一个请求,并把结果转成ResultBean |
- RestTemplateUtil.post(String url, Object data,ParameterizedTypeReference
typeReference)
// 复杂数据结构的请求并转换 |
系统属性工具类
会根据当前系统环境,优先获取本环境的配置,如果不存在则获取DEV环境的配置
【系统管理】-【系统属性管理】
- SysPropertyUtil.getByAlias(String alias)
获取系统属性String adminAccounts = SysPropertyUtil.getByAlias("admin.accounts");
- SysPropertyUtil.getByAlias(String alias,String defaultValue)
获取系统属性,如果未配置则返回默认值
ApplicationContext 工具类
主要提供 Spring Application Context 工具类
- Object getBean(String beanId) :通过SpringBeanId 获取applicationContext中的Bean
T getBean(Class beanClass) :通过Class 获取applicationContext中的Bean
- Map<String, T> getImplInstance(Class
clazz) :获取接口的实现类实例 Map<BeanId,Bean> 形式
- List
getImplInstanceArray(Class clazz) :获取接口的实现类实例 List 形式