工具类-必读
你好呀,我的老朋友!我是老寇,欢迎来到老寇云平台!
话不多说,讲一讲工具类!
# TreeUtil【树形菜单工具类】
class TreeTest {
@Test
void testTree() {
// 构建一个树形菜单
Node n1 = new Node(1L, "节点1", 0L);
Node n2 = new Node(11L, "节点1-1", 1L);
Node node = TreeUtil.buildTreeNode(List.of(n1, n2), Node.class);
Assertions.assertEquals(node.getId(), node.getChildren().getFirst().getPid());
}
// 这里必须继承TreeUtil.TreeNode<T>
@NoArgsConstructor
static class Node extends TreeUtil.TreeNode<Node> {
public Node(Long id, String name, Long pid) {
super(id, name, pid);
}
}
}
# ThreadUtil【线程工具类】
ThreadUtil.shutdown(ExecutorService executorService, int timeout);
// 新建虚拟线程
ThreadUtil.newVirtualTaskExecutor();
// 新建虚拟线程【TTL】
ThreadUtil.newTtlVirtualTaskExecutor();
# TemplateUtil【模板工具类】
TemplateUtil.getContent(String template, Map<String, Object> params);
# SystemUtil【系统工具类】
// 判断是否是Window系统
SystemUtil.isWindows();
# SpringUtil【Spring工具类】
// 注意:需要放入Spring Ioc容器
// 获取服务ID
springUtil.getServiceId();
// 判断是否开启虚拟线程
springUtil.isVirtualThread();
# SpringExpressionUtil【Spring EL表达式工具类】
/**
* 解析表达式.
* @param key 键
* @param parameterNames 参数名
* @param args 参数
* @param clazz 类
* @param <T> 泛型
*/
SpringExpressionUtil.parse(String key, String[] parameterNames, Object[] args, Class<T> clazz);
# SpringContextUtil【Spring上下文工具类】
// 推送事件
SpringContextUtil.publishEvent(ApplicationEvent event);
// 获取工厂
SpringContextUtil.getFactory();
// 根据名称获取Bean
SpringContextUtil.getBean(String name);
// 根据名称判断Bean是否存在
SpringContextUtil.containsBean(String name);
// 根据名称判断单例
SpringContextUtil.isSingleton(String name);
// 根据类型获取Bean
SpringContextUtil.getBean(Class<T> type);
// 根据名称和类型获取Bean
SpringContextUtil.getBean(String name, Class<T> type);
// 根据名称获取类
SpringContextUtil.getType(String name);
// 根据类型获取类【哈希表】
SpringContextUtil.getType(Class<T> type);
// 注册Bean
SpringContextUtil.registerBean(Class<T> clazz, String name);
// 移除Bean
SpringContextUtil.removeBean(String name);
// 获取服务ID
SpringContextUtil.getServiceId();
# ResponseUtil【响应工具类】
// 响应视图【状态码OK,json格式】
ResponseUtil.responseOk(HttpServletResponse response, Object obj);
// 响应视图【状态码OK,自定义响应类型】
ResponseUtil.responseOk(HttpServletResponse response, String str, String contentType);
// 获取响应对象
ResponseUtil.getHttpServletResponse();
# RequestUtil【请求工具类】
// 获取UserAgentParser对象
RequestUtil.getUserAgentParser();
// 获取请求对象
RequestUtil.getHttpServletRequest();
// 根据请求获取域名
RequestUtil.getDomainName(HttpServletRequest request);
// 获取方法处理器
RequestUtil.getHandlerMethod(HttpServletRequest request, HandlerMapping handlerMapping);
// 获取浏览器信息
RequestUtil.getCapabilities(HttpServletRequest request);
// 获取参数值
RequestUtil.getParamValue(HttpServletRequest request, String paramName);
// 获取请求体
RequestUtil.getRequestBody(HttpServletRequest request);
// 获取流
RequestUtil.getInputStream(String requestBody);
# RegexUtil【正则表达式工具类】
// 邮箱验证
RegexUtil.mailRegex(String mail);
// IP验证
RegexUtil.ipRegex(String ip);
// 数字验证
RegexUtil.numberRegex(String number);
// 数据源名称验证
RegexUtil.sourceNameRegex(String sourceName);
// 手机号验证
RegexUtil.mobileRegex(String mobile);
// 根据正则表达式获取值
RegexUtil.getRegexValue(String input, String regex);
# RandomStringUtil【随机字符串工具】
// 生成验证码【数字】
RandomStringUtil.randomNumeric(int count);
# PropertyUtil【属性工具类】
// 绑定或创建属性
PropertyUtil.bindOrCreate(String bindName, Class<T> clazz, String location, String format);
# MDCUtil【MDC工具类】
// 写入MDC
MDCUtil.put(String traceId, String spanId);
// 获取链路ID
MDCUtil.getTraceId();
// 获取标签ID
MDCUtil.getSpanId();
// 清除MDC
MDCUtil.clear();
# MapUtil【Map工具类】
// 判断不为空
MapUtil.isNotEmpty(Map<?, ?> map);
// 判断为空
MapUtil.isEmpty(Map<?, ?> map);
// map转字符串
MapUtil.toStr(Map<String, String> map, String on, String separator);
// 转URI Map
MapUtil.toUriMap(Map<String, Set<String>> uriMap, String serviceId, String separator);
// 转URI Map
MapUtil.toUriMap(Map<String, Set<String>> uriMap, String serviceId);
// 字符串转为Map
MapUtil.toMap(String str, String on, String separator);
// 字符串参数转为map参数
MapUtil.parseParamMap(String params);
// map转字符串
MapUtil.parseParams(Map<String, String> paramMap, boolean isEncode);
// map转为字符串
MapUtil.String parseParams(Map<String, String> paramMap);
// 请求对象构建MultiValueMap
MapUtil.getParameters(Map<String, String[]> parameterMap);
// 获取请求参数
MapUtil.getParameters(HttpServletRequest request);
# JacksonUtil【Jackson工具类】
// json字符转Bean
JacksonUtil.toBean(String json, Class<T> clazz);
// json字符转Bean
JacksonUtil.toBean(byte[] arr, Class<T> clazz);
// 流转为Bean
JacksonUtil.toBean(InputStream inputStream, Class<T> clazz);
// 序列化为json字符串
JacksonUtil.toJsonStr(Object obj);
// 序列化为json字符串【格式化】
JacksonUtil.toJsonStr(Object obj, boolean isFormat);
// json字符串转对象集合
JacksonUtil.toList(String json, Class<T> clazz);
// json字符串转集合对象
JacksonUtil.toList(String json, Class<T> clazz);
// Json反序列化Map
JacksonUtil.toMap(String json, Class<K> keyClass, Class<V> valueClass);
// Map转对象
JacksonUtil.toValue(Object obj, Class<T> clazz);
// Map转对象
JacksonUtil.toMap(Object obj, Class<K> keyClass, Class<V> valueClass);
// json字符串转树节点
JacksonUtil.readTree(String json);
# IpUtil【IP工具类】
// 获取IP地址
IpUtil.getIpAddr(HttpServletRequest request);
// 判断是否内部IP
IpUtil.internalIp(String ip);
# IdGenerator【ID生成器(雪花算法)工具类】
我是老寇,我们下次再见啦!
上次更新: 11/22/2024, 4:10:36 AM