利用注解生成树结构
ListToTree注解
背景介绍:
通常,我们都有需要将一个列表List,转为树的结构
或许我们或多或少都写过工具类如:
或者:
以上写法,或多或少,都需要我们对集合进行一些处理,写多了自然就变得繁琐,甚至有业务相关的时候,修改会变动麻烦
并且功能比较单一,局限
为此设计实现了基于切面+注解的方式,将List转为树,除了配置为,不需要写额外的任何代码
使用案例
功能解释
实现原理:核心是 使用TreeUtil.build(list,rootId,config,())
-
根据需要,设计了可根据页面参数,动态调整rootId等字段
通过url传递参数(rootValueFromParams)可达到动态获取rootId的子数据(children,注意:不包含自己),同时可根据includeSelf=1/true,来包含自身
-
同时在转为树的时候,可根据other=true,或者otherValue[]来 设置除了id,parentId,lable之外的字段,other=true,则全部字段,否则按照othervalue的数组来
-
可设置startField,来实现处理类中的某个字段(List类型),只处理该字段,如下图,只会将nodes的数据转为树
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=0f82e7d7cbffec2e2d341dd0b2fb5a7a.png&pos_id=img-elPgjMIh-1725260834876)
-
可设置depth来设置转为树的时候,截取树的深度,如为1,则只有一层,2为2层,同样可以通过url参数动态修改
如: