以权限配置为例,在用户、角色、权利 三个实体中,角色和权利其实都应该写死,管理员只需配置用户和角色的关系就可以了。
否则:
1.
管理员直接配置业务逻辑,增加业务风险。管理员直接配置了角色和权利,相当于直接干预了业务逻辑,这给用户带来灵活性,但也带来了比较大的风险 —- 管理员配错权限怎么办? 比如管理员把“系统管理员”这一角色的管理权利给取消了,那怎么办?
2.
这给代码组织、程序发布也带来了麻烦。由于配置的东西太多,配置项可能写在SQL语句文件中,或者写在XML配置文件中,当权限规则发生微调时,这些文件也会发生微调,部署到生产系统后又要进行微调,经验证明,这很容易出错,因为XML和SQL的语法语义检查没有编译器来保证;而且,比起直接复制JAVA CLASS文件,部署XML和SQL的烦恼指数也高很多