前言

转眼又过去了两个多月,时间就像一个隐形的精灵,总是在不经意间从眼皮底下溜走,不知不觉已经8月底了,金九银十近在眼前,不知道小伙伴们有没有跳槽的打算呢?相信此时你的心中已经有了自己的答案。闲言少叙,经过周末加上今天上午的赶工,终于把代码生成器更新了一版,这次更新虽然在界面上只是加了一个添加权限管理的radio,但背后的工作却一点不少,先让我们一起来看一下效果吧。

实现效果

推荐大家通过idea插件的方式来使用代码生成器,不容易出现问题。因为exe是我用ikvm把Java代码编译成dll,然后使用visual studio生成的,所以在个别的操作系统中会出现闪退等奇奇怪怪的现象,大概是因为系统缺少某个组件库导致的,另外使用的时候360可能会误报,允许操作即可。

首先打开代码生成器:


配置好数据库信息,选择添加权限管理选项,使用权限管理功能会在配置的数据库中建立下图中的六张表,所以数据库的用户需要具备建表权限才可正常使用,否则生成后的代码会不可用:

数据表配置,在这里我们写一下表名,到时候默认会生成跟表名一样的菜单名:

回到主界面,点击生成,稍等片刻,生成完毕(生成过程中如果之前已经生成过权限相关表会提示已经有相关表,是否重建,根据自身需求选择是否即可):

导入生成后的项目到idea,启动生成后的项目,启动成功:

访问http://localhost:8080/authtest/login,初始用户名admin,密码123456。
如下图,已经生成了系统管理模块和测试表模块,菜单管理用来维护菜单,菜单可以拖拽进行排序等操作,角色管理可以设置不同角色显示的菜单和按钮:


在这里我们测试一下,去掉当前用户的测试表模块信息管理菜单的删除权限:

设置完之后,刷新当前浏览器页面(现在设置完权限后需要刷新页面才可生效),点击测试表的信息管理菜单,可以发现删除按钮已经不见了:

然后我们再把删除权限恢复,刷新浏览器页面,删除按钮重现:


至此,我们已经成功生成了一套较为完善的带有权限管理功能的后台管理系统!

实现原理

实现原理其实比较简单,cm_sys_role表存储角色相关信息,cm_sys_user表存储用户的相关信息,每个用户都拥有自己的角色,cm_sys_menu和cm_sys_button分别存储菜单和按钮信息,cm_sys_role_menu和cm_sys_role_button来存储角色对于角色和按钮的分配关系,这样通过当前用户的角色id便可以查询到自己拥有的菜单和按钮,实现页面上的动态显示,按钮主要是通过页面上的元素id来进行控制,其实只要是页面上的元素,都可以配置好之后进行显示上的控制。

生成的逻辑则稍微复杂一些,生成代码属于逆向思维,首先需要生成所需的基本的六张表,插入初始化数据,然后根据用户配置的数据表信息来插入菜单和按钮数据,准备工作完毕之后,需要花大精力来处理生成模板,同时还涉及到之前生成逻辑的兼容,模板修改完毕后,再根据模板编写具体的生成代码。本次更新我对生成代码的核心方法做了进一步的公共方法抽取,缩小了代码体积,之前的代码太过冗长,写起来比较崩溃,现在舒服了很多,感兴趣的朋友可以去自行阅读源码,代码写完后便是各方面的测试,测试完毕后再进行线上的包发布,发布完之后,当用户打开软件的时候便可以在线获取更新,体验全新的功能,大体流程就是这样,其实每次新版本发布之后都会有一些bug出现,就在我写这篇文章的时候,截图的过程中还发现并修复了俩bug。。。

结语

其实任何一个在互联网上线并且被大众使用的开源软件,能长期运营下去都是不容易的,毕竟只是利用业余时间来开发维护,而且没有多少回报,代码生成器上线的这一年多来,每天都有人关注并且使用,我对此还是很感动的,也许这就是我保持更新的动力所在吧,工作的忙碌,生活的负担,压的我们每天喘不过气来,逐渐变得彷徨迷茫,但作为程序员的我们还是要坚持学习,每天进步一点,这样不至于上了年纪被淘汰掉,我现在马上27了,虽然正值壮年,但却感觉以前的那股冲劲正在越来越淡,也许这就是所谓的老了吧,哈哈哈,时代永远是属于年轻人的,虽然我们都在逐渐退出历史舞台,但能在退场之前留下属于自己的一丝光亮也就无憾了。

金九银十招聘季也近在咫尺,人挪活,换一个环境,也许恰巧是心之所向,当然我不是鼓励大家跳槽,通过面试了解行业走向,主流技术以及自己的市场价位是比较直接的方式,这对自己以后的职业发展大有裨益。最后,祝大家都能有所突破,早日实现自己的职业理想!

关注我的公众号 螺旋编程极客,可获取最新版代码生成器及其源码,同时定期分享专业知识福利,期待你的到来!

Java代码生成器codeMan重磅更新——添加权限管理模块生成功能,实现动态菜单和按钮级别的权限控制相关推荐

  1. 6. 添加权限管理模块

    本文主要是以权限管理模块为例来介绍使用springboot+mybatis完成增删改查的功能. 1. 添加Permission实体类 1 package com.lvniao.blog.model; ...

  2. 通俗易懂权限管理模块设计-Java

    最近一直在做CMS系统,发现一些内容其实都是重复出现的,例如权限管理模块.权限管理模块就是为了管理用户是否有权利访问某个权限,如果不能则拒绝访问.其实Java中已经有很成熟的权限管理框架,例如 Shi ...

  3. Expo大作战(三十)--expo sdk api之Permissions(权限管理模块),Pedometer(计步器api)

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  4. Vue项目实战之人力资源平台系统(十一)权限管理模块(上)

    前言 目录 前言 一.权限管理的设计思想 二.给员工分配角色 2.1 分配角色弹窗效果图 2.1 新建分配角色对话框组件 2.2 获取角色列表 2.3 获取当前用户的角色信息 2.4 点击确定按钮给用 ...

  5. 一个权限管理模块的设计(转载)

    一 个用户权限管理模块的设计思路: 1. 权 限资源(功能资源) 系统的所有权限信息.权限具有上下级关系,是一个树状的结构.如下: <!--[if !supportLists]-->u  ...

  6. 一个简易实用的web权限管理模块的应用与实现

    本文介绍一个简易实用的web权限管理模块的应用与实现. 先介绍数据模型和应用界面,后继对实现细节做选择性阐述. 数据表关系如下: 该图标明了登陆用户.角色.部门(机构).用户组.角色和模块功能之间的关 ...

  7. Yii框架中使用SRBAC作为权限管理模块时遇到的问题

    Yii框架中使用SRBAC作为权限管理模块时遇到的问题 Yii框架中使用SRBAC作为权限管理模块时遇到的问题 看到Yii中提供RBAC的插件,SRBAC,就想用用. 结果按照手册上的安装办法,整来整 ...

  8. [vue] vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?

    [vue] vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做? 可以通过指令去做 Vue.directive('hasPermission', { bind(el, binding, vno ...

  9. 检测android 小米 系统更新,小米健康重磅更新!系统级心率检测功能来了

    小米健康重磅更新!系统级心率检测功能来了 2020-09-30 11:38:01 1点赞 0收藏 0评论 小米MIUI 12在今天正式推出了小米健康App重磅更新,新增了全新功能「心率检测」,小米也成 ...

最新文章

  1. 牛X,试用了下 GitHub 上 2 万 Star 的第一抢票神器,3 秒钟抢到!
  2. vivado调用modelsim
  3. MSSQLSERVER数据库- SQL交叉表
  4. 数据库基本----SQL语句大全
  5. 微软自带输入法如何关闭桌面右下角「拼」图标
  6. python自动化框架测试实操_自动化框架之 python+selenium+pytest
  7. 工作于内存和文件之间的页缓存, Page Cache, the Affair Between Memory and Files
  8. 2016-08-31
  9. c#“集合已修改;可能无法执行枚举操作”
  10. abb外部轴零位校准_【ABB】ABB机器人外部轴参数(KpKvTi)调试
  11. WPF_在APP.xaml应用资源样式
  12. android 圆形进度条设置进度条,Android实现带数字的圆形进度条(自定义进度条)
  13. win11快捷键常用表 最全面的win11快捷键使用指南
  14. JSP技术:表单及 POST 方法提交参数
  15. 想要定制专属AI声音?这是一份来自微软的保姆级攻略
  16. sql2000安装失败的解决方法
  17. 【设计模式 三】实战工厂汽车代工之工厂模式-简单模式
  18. 基于模型的系统工程及数字工程技术研讨会
  19. People seldom do what they believe in. They do what is convenient, then repent.
  20. oracle使用小技巧,Oracle在linux下使用小技巧

热门文章

  1. linux时间老变成市区,Linux(CentOS6.5)修改系统市区被中国标准时间(北京时间)
  2. 360安卓_360贷款app下载-360贷款安卓最新版下载v1.3.15
  3. pikachu靶场通关记录
  4. 平安医疗科技疾病问答迁移学习(CHIP-STS)
  5. 深度学习入门项目:PyTorch实现MINST手写数字识别
  6. 一款在使用中的车牌选号系统开发
  7. 数字化改变生活,数字化具有什么意义?
  8. Kotlin技巧与自定义语法糖
  9. Shp文件的必学知识点
  10. 如何搭建产品操作手册