前言
项目的后端用的是springboot2.6。前端是vue2 基于vue admin template开发
本篇的持久层框架选择的是springData jpa
本文主要讲解动态路由的实现 需要完整代码请参考权限系统
后端
实体类
Menu
package com.mhpy.entity.entity;
import com.mhpy.entity.result.dto.Meta;
import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;
import java.util.List;
@Data
@Entity
@Table(name = "t_menu")
public class Menu implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "p_id")
private Integer pId;
@Column(name = "name")
private String name;
@Column(name = "path")
private String path;
@Column(name = "icon")
private String icon;
@Column(name = "type")
private Integer type;
@Column(name = "permission_value")
private String permissionValue;
@Column(name = "component")
private String component;
@Column(name = "redirect")
private String redirect;
@Transient
private Meta meta;
@Transient
private List<Menu> children;
}
Mata
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Meta implements Serializable {
private String title;
private String icon;
private String[] roles;
public Meta(String title, String icon) {
this.title = title;
this.icon = icon;
}
}
UserInfoVo
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserInfoVo implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private String avatar;
private String sex;
private String[] roles;
private List<String> permissio