权限管理-查询所有菜单(递归) | 学习笔记

简介: 快速学习 权限管理-查询所有菜单(递归)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)权限管理-查询所有菜单(递归)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/667/detail/11528


权限管理-查询所有菜单(递归)


目录:

一、代码启动

二、核心代码

三、检测


一、代码启动

启动项目,打开 serviceAcl,将以下服务启动起来:

package com.atguigu.aclservice;
import ...
@SpringBootApplication
@EnableDiscoveryClient
ComponentScan("com.atguigu"
@MapperScan("com.atguigu.aclservice. mapper"
public class ServiceAclApplication (
public static void main(String[] args) ( SpringApplication.run(ServiceAclApplication.clasg

启动之后,进行测试,看看最终能否得到树形结构的菜单效果。

使用 swagger 进行测试,端口号为8009

搜索:

http://localhost:8009/swagger-ui.html#/permission45controller,会发现有一行代码需要注释掉,就是这行代码:

package com.atguigu.aclservice;

import...

@SpringBootApplication

@EnableDiscoveryClient

@ComponentScan("com atguigu

@MapperScan("com. atguigu.aclservice. mapper

public class ServiceAclApplication (

public static void main(String[] args) (SpringApplication.run(ServiceAclApplication.class, ars

这个代码它表示如果路径中包含这个路径,接口是不会显示的,如果这句话没被注释掉,它的接口就不会显示,解决方案是修改名字,或者注释掉,否则将没有信息显示。


二、核心代码

//把返回所有菜单 list 集合进行封装的方法public static List<Permission bulidPermission (List<Permission> permissionList){

//创建 list 集合,用于数据最终封装 List<Permission> finalNode = new ArrayList< >():

//把所有菜单list集合遍历,得到顶层菜单 pid=0菜单,设置 level 1

for(Permission permissionNode : permissionList)(

//得到顶层菜单 pid=0菜单

if("o [equals(permissionNode.getPid()))(

//设置顶层菜单的 level 1

permissionNode.setLevel(1);

//根据顶层菜单,向里面进行查询子菜单,封装到finalNode里面finalNode.add(selectChildren(permissionNode,permissionList));


三、检测

用最一开始的方法,第一次比较便利,通过一级查二级,通过二级查三级,什么三级查四级类推,直到它最终没有数据。此时递归查询菜单就完成了。


相关文章
|
7月前
|
存储 Java 关系型数据库
ssm150旅游网站的设计与实现+jsp(文档+源码)_kaic
本旅游网站基于现代经济快节奏发展和信息化技术的升级,采用SSM框架、Java语言及Mysql数据库开发。它实现了景点、新闻、酒店、飞机票和火车票管理等功能,帮助管理者高效处理大量数据信息,提升工作效率。系统界面简洁美观,功能布局合理,同时提供了数据安全解决方案,确保信息的安全性和可靠性。该网站不仅提高了事务处理效率,还实现了数据的整体化、规范化与自动化管理。关键词:旅游网站;SSM框架;Mysql;自动化。
|
存储 分布式计算 大数据
首批!阿里云MaxCompute完成中国信通院基于无服务器架构大数据平台测试
近日,阿里云计算有限公司MaxCompute产品顺利完成中国信通院首批无服务器架构(Serverless)大数据平台测试。
734 7
|
存储 分布式计算 区块链
Ethereum 和 Layer2 的区别
Ethereum 和 Layer2 的区别
202 0
|
存储 Java 编译器
【JAVA学习之路 | 基础篇】数据类型
【JAVA学习之路 | 基础篇】数据类型
|
存储 前端开发 Unix
[笔记]C++并发编程实战 《四》同步并发操作(二)
[笔记]C++并发编程实战 《四》同步并发操作(二)
142 0
|
消息中间件 设计模式 Java
解决90%面试问题!GitHub顶级"Java面试手册"了解下八股文天花板
身为java开发工程师的你找到自己满意的工作了吗?又或者还在面试的路上经历一次又一次的失败。迟迟找不到正确的开门砖,也许你的技术能力可能并不差但就是在面试上得不到充分的证明。
|
定位技术 API
百度地图标注API开发随机marker数组经纬度的函数解决方案
百度地图标注API开发随机marker数组经纬度的函数解决方案
163 0
|
缓存 前端开发 Linux
日常工作中对我很重要的那些git命令
git基本组成框架:Workspace、Stage、Repository、Remote
299 0
|
前端开发 开发者
多行文本| 学习笔记
快速学习多行文本。
多行文本| 学习笔记
|
域名解析 缓存 网络协议
Linux【实操篇】—— 磁盘分区、网络配置(2)
Linux【实操篇】—— 磁盘分区、网络配置(2)
358 0
Linux【实操篇】—— 磁盘分区、网络配置(2)