coder,不要做计算机,好吗?

客户一个文件权限系统,对权限做了7种分类,读写等

不带名字coder,分别定义了7条记录,所以,如果这个客户对某个目录或文件有权限最多的情况就会有7条记录。

嗯嗯,coder用AOP做了权限校验,

终于,这个系统上线了。

嗯嗯,一个sql查询花了10s。

嗯,客户说我们是吃屎的。。。我tmd太荣幸了。

好吧,重新设计吧,

image

控制到500ms了。再加一个redis,嗯嗯,真香。

不知名的coder,希望你早日进化。。。

 

补充,有天路过

https://blog.csdn.net/xiao__gui/article/details/11701893

上面用四个boolean类型变量来保存每种权限状态。下面是另外一种方式,使用位掩码的话,用一个二进制数即可,每一位来表示一种权限,0表示无权限,1表示有权限。

 

 1 public class NewPermission {
 2     // 是否允许查询,二进制第1位,0表示否,1表示是
 3     public static final int ALLOW_SELECT = 1 << 0; // 0001
 4     
 5     // 是否允许新增,二进制第2位,0表示否,1表示是
 6     public static final int ALLOW_INSERT = 1 << 1; // 0010
 7     
 8     // 是否允许修改,二进制第3位,0表示否,1表示是
 9     public static final int ALLOW_UPDATE = 1 << 2; // 0100
10     
11     // 是否允许删除,二进制第4位,0表示否,1表示是
12     public static final int ALLOW_DELETE = 1 << 3; // 1000
13     
14     // 存储目前的权限状态
15     private int flag;
16  
17     /**
18      *  重新设置权限
19      */
20     public void setPermission(int permission) {
21         flag = permission;
22     }
23  
24     /**
25      *  添加一项或多项权限
26      */
27     public void enable(int permission) {
28         flag |= permission;
29     }
30     
31     /**
32      *  删除一项或多项权限
33      */
34     public void disable(int permission) {
35         flag &= ~permission;
36     }
37     
38     /**
39      *  是否拥某些权限
40      */
41     public boolean isAllow(int permission) {
42         return (flag & permission) == permission;
43     }
44     
45     /**
46      *  是否禁用了某些权限
47      */
48     public boolean isNotAllow(int permission) {
49         return (flag & permission) == 0;
50     }
51     
52     /**
53      *  是否仅仅拥有某些权限
54      */
55     public boolean isOnlyAllow(int permission) {
56         return flag == permission;
57     }
58 }

 

比较一下:

传统的,判断是只否允许Select和Insert权限

if (permission.isAllowSelect() && permission.isAllowInsert() 
    && !permission.isAllowUpdate() && !permission.isAllowDelete())

新的

if (permission. isOnlyAllow (NewPermission.ALLOW_SELECT | NewPermission.ALLOW_INSERT))

 

posted on 2020-05-02 13:57  一望无际的南  阅读(221)  评论(0编辑  收藏  举报

导航