Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;

Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

附上官网链接:Hutool官网

同时还提供如下的组件:

hutool-aop JDK动态代理封装,提供非IOC下的切面支持
hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤
hutool-cache 缓存
hutool-core 核心,包括Bean操作、日期、各种Util等
hutool-cron 定时任务模块,提供类Crontab表达式的定时任务
hutool-crypto 加密解密模块
hutool-db JDBC封装后的数据操作,基于ActiveRecord思想
hutool-dfa 基于DFA模型的多关键字查找
hutool-extra 扩展模块,对第三方封装(模板引擎、邮件等)
hutool-http 基于HttpUrlConnection的Http客户端封装
hutool-log 自动识别日志实现的日志门面
hutool-script 脚本执行封装,例如Javascript
hutool-setting 功能更强大的Setting配置文件和Properties封装
hutool-system 系统参数调用封装(JVM信息等)
hutool-json JSON实现
hutool-captcha 图片验证码实现

我在此项目中使用的是hutool中的TreeUtil:

链接地址:https://hutool.cn/docs/#/core/%E8%AF%AD%E8%A8%80%E7%89%B9%E6%80%A7/%E6%A0%91%E7%BB%93%E6%9E%84/%E6%A0%91%E7%BB%93%E6%9E%84%E5%B7%A5%E5%85%B7-TreeUtil

考虑到菜单等需求的普遍性,有用户提交了一个扩展性极好的树状结构实现。这种树状结构可以根据配置文件灵活的定义节点之间的关系,也能很好的兼容关系数据库中数据。

        //配置 TreeUtilTreeNodeConfig treeNodeConfig = new TreeNodeConfig();// 自定义属性名 都要默认值的treeNodeConfig.setIdKey("id");// 最大递归深度treeNodeConfig.setDeep(200);List<Tree<Integer>> treeNodes = TreeUtil.build(treeList, 0, treeNodeConfig,(treeNode, tree) -> {tree.setId(treeNode.getId());tree.setParentId(treeNode.getParent_role_id());tree.setName(treeNode.getRole_name());tree.putExtra("users", treeNode.getList());

通过TreeNodeConfig我们可以自定义节点的名称、关系节点id名称,这样就可以和不同的数据库做对应。

希望本文能对未使用过工具类的开发者们提供新的思路与便捷方式。

关于java开发中的实用工具Hutool工具类相关推荐

  1. JAVA 开发中常用的工具有哪些?

    Java开发中常用的工具有以下几种: Eclipse:一款非常流行的开发工具,提供了很多方便的功能,如代码自动补全.调试.版本控制等. IntelliJ IDEA:一款功能强大的Java集成开发环境, ...

  2. java 实体属性个数_?Java中比较实用实体转换工具介绍

    ​Java中比较实用实体转换工具介绍 文中源码地址 大家一般编码过程中,经常会遇到DO对象转化为DTO对象,对象和对象之间转换一般需要用到转换工具,毕竟使用getter/setter太过麻烦 DO:D ...

  3. Java开发中Websocket的技术选型参考

    1. 前言 Websocket是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议.WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据 ...

  4. 初学者也能看懂的 Vue2 源码中那些实用的基础工具函数

    1. 前言 大家好,我是若川.最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12 想学源码,极力推荐之前我写的<学习源码整体架构系列>jQuery.underscore.l ...

  5. Java开发中更多常见的危险信号

    在< Java开发中的常见危险信号>一文中,我研究了一些不一定本身就是错误或不正确的做法,但它们可能表明存在更大的问题. 这些"红色标记"类似于"代码气味&q ...

  6. Java开发中的常见危险信号

    在开发,阅读,复审和维护成千上万行Java代码的几年中,我已经习惯于看到Java代码中的某些" 危险信号 ",这些信号通常(但可能并非总是)暗示着代码问题. 我不是在谈论总是错误的 ...

  7. java property xml,Java开发中读取XML与properties配置文件的方法

    相关阅读: 1. XML文件: 什么是XML?XML一般是指可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 2.XML文件的优点: 1)XML文档内容和结构完 ...

  8. Java开发中遇到具有挑战的事_170道Java工程师面试题,你敢挑战吗?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.面向对象的特征有哪些方面? 2.访问修饰符public,private,protected,以及不写(默认)时的区别? 3.String 是最基本的数 ...

  9. 网站开发中很实用的 HTML5 jQuery 插件

    这篇文章挑选了15款在网站开发中很实用的 HTML5 & jQuery 插件,如果你正在寻找能优化网站,使其更具创造力和视觉冲击,那么本文正是你需要的.这些优秀的 jQuery 插件能为你的网 ...

最新文章

  1. 了解区块链,从挖矿开始
  2. 第一章:火狐浏览器 : 环境配置: FireFox 版本38 + jdk 7 + selenium 2.53.6 + selenum-version 2.48.2...
  3. Windows线程调度学习(一)
  4. idea导入java项目类上面显示红色的J符号解决办法
  5. phpstudy快速搭建网站_小白快速上手搭建属于自己的网站
  6. dhcp(客户端)协议使用哪个众所周知的端口号?_DHCP不详解
  7. PHP如何关闭notice级别的错误提示
  8. 计算机在线应用不能安装,教您电脑为什么安装不了软件
  9. 基于jsp,javaweb的毕业设计管理系统
  10. CSS背景图片自适应大小
  11. linux下字符终端某些按键无法输入解决方法
  12. Boost电路实战详解!(高效率同步整流,PID闭环追踪)
  13. 计算机桌面图标第一个老是往下,电脑点第一个图标老是跳到最后一个图标怎么回事呢?...
  14. centos 解压压缩包到指定目录
  15. python简单抽奖系统_python实现的简单抽奖系统实例
  16. 计嵌 廖峻 20178303040 C++作业
  17. 2014年中南大学上机复试
  18. 【这很AI】谷歌再推AI应用“名画匹配”:与博物馆7万幅历史名画匹配,结果可能是梵高
  19. 关于Echarts折线图双Y轴网格的一些配置
  20. Zabbix5.0微信报警超详细步骤

热门文章

  1. 前端学习(764):创建对象的三种方式
  2. 前端学习(489):文本格式化
  3. 第六十一期: 从7600万个5G连接中,我们发现了7种最有前景的5G物联网应用
  4. 第五十二期:Java开发数据库设计的14个技巧,你知道几个?
  5. Java jdk中的部分工具javac javaw javaws javadoc javah javap jar jdb jps的作用
  6. 基于mint-ui的城市选择3级联动
  7. golang 读取文件最后一行_测试用例是开发人员最后一块遮羞布
  8. 知乎问答:现在程序员的工资是不是被高估了?
  9. integer对应java类型_Java中的Integer和int等包装类和基本数据类型简单比较
  10. 高德地图跟百度地图经纬度互转