TypechoJoeTheme

王子博客

用户名
密码
用户名
邮箱
2022-09-21

RABC权限系统,你会设计吗,老王教你设计

RABC权限系统,你会设计吗,老王教你设计
RBAC权限分析RBAC 全称为基于角色的权限控制,本段将会从什么是RBAC,模型分类,什么是权限,用户组的使用,实例分析等几个方面阐述RBAC思维导图绘制思维导图如下什么是RBACRBAC 全称为用户角色权限控制,通过角色关联用户,角色关联权限,这种方式,间阶的赋予用户的权限,如下图所示对于通常的系统而言,存在多个用户具有相同的权限,在分配的时候,要为指定的用户分配相关的权限,修改的时候也要依次的对这几个用户的权限进行修改,有了角色这个权限,在修改权限的时候,只需要对角色进行修改,就可以实现相关的权限的修改。这样做增加了效率,减少了权限漏洞的发生。模型分类对于RBAC模型来说,分为以下几个模型 分别是RBAC0,RBAC1,RBAC2,RBAC3,这四个模型,这段将会依次介绍这四个模型,其中最常用的模型有RBAC0.RBAC0RBAC0是最简单的RBAC模型,这里面包含了两种。用户和角色是多对一的关系,即一个用户只充当一种角色,一个角色可以有多个角色的担当。用户和角色是多对多的关系,即,一个用户可以同时充当多个角色,一个角色可以有多个用户。 此系统功能单一,人员较少,这里举个栗...
王子
2022-09-21

Java,springboot,技术与技巧

365 阅读
0 评论
2022年09月21日
365 阅读
0 评论
2022-09-21

为了使用新技术,我从 Java8 升到了 Java11

为了使用新技术,我从 Java8 升到了 Java11
把一个项目从 Java 8 迁移到 Java 11,我该怎么办呢?最简单的办法,当然是直接强行升级,遇到一个错就改一个错,别看它 low,但是对于一个小型且非核心的项目来说,已经足够了。当然,对于比较重要的项目,且代码行数不少的情况,最标准的姿势就是对着官方文档,就是这份 Java 11 的迁移说明文档。https://docs.oracle.com/en/java/javase/11/migrate/index.html里面详细说明了 Java 8 到 Java 11 可能出现的兼容性问题,并给出了修改措施或建议。理论上来说,对着官方文档一个字一个字去读,并且把代码的每一行都肉眼扫描一遍,该修改的地方就做出修改,肯定是可以完美迁移的。但人毕竟不是机器,自己写的代码可能就有上千甚至上万行,还得算上引入的第三方类库,这显然就不是人干的事情了。所以,就有一款神奇的工具,可以帮我们自动扫描 JDK 升级过程中需要修改或注意的地方,并直接生成一个可视化的 HTML 报告,厉害了!它是什么这款工具的名字叫做 EMT4J,即 Eclipse Migration Toolkit for Jav...
王子
2022-09-21

Java,技术与技巧

588 阅读
3 评论
2022年09月21日
588 阅读
3 评论
2022-09-21

Excel办公技巧:巧用分类汇总功能批量合并相同内容单元格

Excel办公技巧:巧用分类汇总功能批量合并相同内容单元格
应用案例将下图工作表中相同组别的单元格进行合并,比如A2和A3单元格中的内容同为“1组”,将两个单元格进行合并。操作步骤1 选中工作表数据区域的任一单元格,这里选择A1单元格,在“数据”选项卡“分级显示”功能组中单击“分类汇总”按钮。2 在弹出的“分类汇总”对话框中,设置“分类字段”为“组别”,“选定汇总项”为“组别”,单击“确定”按钮。此时,在原数据区域左侧会新增一列分类汇总列。3 选中A2:A10单元格区域,同时按CTRL+G组合键调出“定位”对话框,在对话框中单击左下方的“定位条件”按钮。4 在弹出的“定位条件”对话框中,选择“空值”,单击“确定”,这样就能选中A2:A10单元格区域所有的空白单元格。5 在“开始”选项卡“对齐方式”功能组中单击“合并后居中”按钮,这样A列中被选中的空白单元格就进行了合并居中,合并区域与B列中要合并的区域正好相对应。6 选中数据区域任意一个单元格,在“数据”选项卡“分级显示”功能组中单击“分类汇总”按钮。7 在弹出的“分类汇总”对话框中单击“全部删除”按钮,此时,表格A列中的分类汇总项被删除。8 选中A列中的合并区域A2:A8单元格,在“开始...
王子
2022-09-21

技术与技巧

249 阅读
0 评论
2022年09月21日
249 阅读
0 评论
2022-09-14

使用Spring AOP实现异步文件上传

使用Spring AOP实现异步文件上传
背景相信很多系统里都有这一种场景:用户上传 Excel,后端解析 Excel 生成相应的数据,校验数据并落库。这就引发了一个问题:如果 Excel 的行非常多,或者解析非常复杂,那么解析+校验的过程就非常耗时。如果接口是一个同步的接口,则非常容易出现接口超时,进而返回的校验错误信息也无法展示给前端,这就需要从功能上解决这个问题。一般来说都是启动一个子线程去做解析工作,主线程正常返回,由子线程记录上传状态+校验结果到数据库。同时提供一个查询页面用于实时查询上传的状态和校验信息。进一步的,如果我们每一个上传的任务都写一次线程池异步+日志记录的代码就显得非常冗余。同时,非业务代码也侵入了业务代码导致代码可读性下降。从通用性的角度上讲,这种业务场景非常适合模板方法的设计模式。即设计一个抽象类,定义上传的抽象方法,同时实现记录日志的方法。例如://伪代码,省略了一些步骤 @Slf4j public abstract class AbstractUploadService<T> { public static ThreadFactory commonThreadFactor...
王子
2022-09-14

Java,技术与技巧

324 阅读
0 评论
2022年09月14日
324 阅读
0 评论
2022-09-13

轻量级虚拟机Multipass使用教程

轻量级虚拟机Multipass使用教程
当我们电脑内存不够的时候 你会怎么想?加内存??还是使用虚拟机?最近,打算在 windows电脑上安装一个虚拟机,用来学习 K8S。首先想到的是 Vmware 然后打开浏览器找了找,发现只提供付费版本。然后,开始尝试使用免费 VirtualBox,但是在安装 CentOS 的时候,貌似因为 windows版本的原因,总是报错,花费了好几天的时间,试过各种方案,最终解决无果,就放弃了。。就在老王要放弃的时候,突然在 Ubuntu 官网进行冲浪的时候,发现了一款叫 Multipass 的东西。它可以快速在电脑上快速搭建一个轻量级的虚拟机,并且相比于 Vmware 更加轻量,只需一行命令快速创建 Ubuntu 虚拟机。Multipass 是一个轻量虚拟机管理器,是由 Ubuntu 运营公司 Canonical 所推出的开源项目。运行环境支持 Linux、Windows、macOS。在不同的操作系统上,使用的是不同的虚拟化技术。在 Linux 上使用的是 KVM、Window 上使用 Hyper-V、macOS 中使用 HyperKit 以最小开销运行VM,支持在笔记本模拟小型云。同时,...
王子
2022-09-13

技术与技巧

1,429 阅读
1 评论
2022年09月13日
1,429 阅读
1 评论