java后端为前端提供接口,将数据以树形结构返回(工具类hutool.core.lang.tree)

用于后端java的实用、简洁、通俗易懂的树形工具类使用笔记

设计需求是做一个类似于部门管理的树形结构,后端设计表写逻辑,为前端提供接口,将数据以树形结构返回

这里直接上代码,基本可以直接拿去用,只需要把父id和名称做对应的修改就完了。

步骤:

先把需要的数据全查出来,

再创建工具类并设置id、树结构标识ParentIdKey、名称,

最后调build方法把查出来的数据和工具类放进去就行了(其中父id命名为groupId

接口测试树结构效果:

具体代码:

import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeNodeConfig;
import cn.hutool.core.lang.tree.TreeUtil;
import cn.hutool.core.util.ReflectUtil;
public R<List<Tree<String>>> listAll() {
    List<Group> groupList = groupService.selectAll();//全查出所有可用数据
    TreeNodeConfig config = new TreeNodeConfig();
    config.setIdKey("id");
    config.setParentIdKey("groupId");//父id在库里命名为groupId
    config.setDeep(10);//最大递归深度  默认无限制
    config.setNameKey("name");
    List<Tree<String>> treeNodes = TreeUtil.build(groupList, "0", config, (group, tree) -> {
        tree.setId(group.getId());//唯一标识符  必填属性
        tree.setParentId(group.getGroupId());//父id  必填属性
        tree.setName(group.getName());
        tree.setWeight(group.getPosition());
        Field[] fields = ReflectUtil.getFieldsDirectly(group.getClass(), true);
        for (Field field : fields) {
            String fieldName = field.getName();
            Object fieldValue = ReflectUtil.getFieldValue(group, field);
            tree.putExtra(fieldName, fieldValue);
        }
    });
    log.info(JSONUtil.toJsonStr("tree数据:" + treeNodes));
    return R.ok(treeNodes);
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: "cn.hutool.core.io.ioruntimeexception: connectexception: connection refused: connect" 这个错误消息指的是,连接被拒绝了。也就是说,你试图连接一个服务器,但是该服务器拒绝了你的连接请求。 ### 回答2: cn.hutool.core.io.IORuntimeException是一个I/O运行时异常类,通常代表着在进行I/O操作时出现了异常。这个异常类中的一个常见的子类就是ConnectException,表示连接异常。连接异常是一个网络异常,通常是由于网络连接被拒绝导致的。 当我们使用cn.hutool工具类进行I/O操作时,如果在连接过程中出现了异常,就会抛出cn.hutool.core.io.IORuntimeException异常,其中的一个常见子类就是ConnectException。在实际编码中,我们通常会在catch语句块中捕获这个异常,然后对异常进行相应的处理。 在出现cn.hutool.core.io.IORuntimeException: ConnectException: Connection refused: connect异常时,我们需要先明确出现异常的原因。通常来说,这个异常表示我们的应用程序没有能够成功连接到目标地址。可能的原因包括: 1. 目标主机不存在:可能我们的应用程序使用了错误的地址或者域名,或者目标主机已经停止运行、关闭或者繁忙等。 2. 网络连接故障:可能是由于网络故障(如断开网络连接)等原因导致连接失败。 3. 端口未开放:可能是我们的应用程序使用了错误的端口,或者目标服务器并没有开放我们需要的端口,导致我们的连接失败。 处理这个异常的方法通常来说包括: 1. 检查目标主机是否存在:可以通过ping命令或者其他网络检测工具检查目标主机的连接是否正常。 2. 检查网络连接是否正常:可以通过在命令行中使用telnet或者ping命令对目标主机进行测试,来发现网络连接问题。 3. 检查端口号是否正确:可以通过检查目标服务器的端口配置,或者使用网络扫描工具来检查目标主机上哪些端口处于开放状态。 总之,在遇到cn.hutool.core.io.IORuntimeException: ConnectException: Connection refused: connect异常时,我们需要针对具体情况进行详细排查,找到异常出现的原因,然后再根据具体情况进行对应的处理。 ### 回答3: cn.hutool.core.io.ioruntimeexception: connectexception: connection refused: connect是一个异常信息,通常出现在进行网络连接操作时,因为无法连接到远程服务器而抛出的异常。这个异常信息通常表明客户端尝试与服务器建立连接时,网络连接出现错误,服务端并没有响应。 具体而言,可能会出现以下几种情况: 1.目标服务器已经停止服务或关闭连接,导致无法连接; 2.本地网络配置出现问题,无法与目标服务器进行通信; 3.目标服务器的防火墙或网络安全策略拒绝连接; 4.客户端代码实现错误,无法正常连接到服务端。 当出现cn.hutool.core.io.ioruntimeexception: connectexception: connection refused: connect这个异常信息时,可以首先排查网络连接是否正常,是否存在网络防火墙的限制,是否使用了正确的端口号和IP地址以及是否连接超时等问题。如果确认以上问题都不存在,可以继续排查代码的错误,例如是否正确实现了网络连接等相关操作。 综上,cn.hutool.core.io.ioruntimeexception: connectexception: connection refused: connect这个异常信息是网络连接失败时常见的异常信息,需要仔细排查具体原因,并根据具体的错误情况进行相应的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值