细粒度与粗粒度授权策略及其在Mybatis中的应用
需积分: 46 88 浏览量
更新于2024-08-07
收藏 9.62MB PDF 举报
"本文主要讨论了粗颗粒和细颗粒授权的策略以及Mybatis中#和$的区别,同时还提及了一些Java基础知识,包括面向对象、语法特性、重载与重写等概念。"
在授权管理中,粗颗粒和细颗粒授权是两种不同的权限控制方式。粗颗粒授权通常用于系统级别的功能控制,它简化了权限管理,通过统一的权限设置来限制用户对整个系统或大功能模块的访问。例如,可以设定用户是否有权进行数据备份或系统配置等操作。这种授权方式通常在系统架构层面实现,通过过滤器等手段统一拦截URL,对用户的操作进行全局控制。
相比之下,细颗粒授权则关注于数据级别的控制,它更灵活且适应业务需求的变化。由于业务需求可能会频繁变动,导致对数据的操作权限也需要随之调整,因此细颗粒授权建议在业务层实现,比如在service接口中添加校验逻辑。例如,用户只能修改自己创建的商品信息,这就需要在服务接口中传入当前操作人的标识,与商品的创建人标识对比,如果不一致则拒绝修改操作。
在Mybatis中,#和$是两种不同的占位符。#{}使用时会将传入的数据自动加上双引号,相当于预编译处理,可以防止SQL注入,例如`order by #user_id#`。而${}则是直接将传入的数据拼接在SQL字符串中,没有预编译的安全性,如`order by $user_id$`。
此外,文件中还提到了一些Java基础知识点,包括:
1. 面向对象的特性,如封装、继承、多态,以及对这些特性的理解。
2. 访问权限修饰符public、private、protected以及默认的区别,它们决定了类成员的可见性和可访问性。
3. Java中的克隆对象,如何通过`clone()`方法复制对象。
4. Java中的逻辑运算符`&`和`&&`的区别,前者始终会评估两边的操作数,后者(短路与)在左操作数确定结果后就不再评估右操作数。
5. 跳出多重嵌套循环的几种方法,如使用`break`或`return`。
6. `equals()`和`hashCode()`的关系,以及为何两个对象值相等但`hashCode()`可能不同。
7. 是否可以继承`String`类,以及Java中对象传递的性质——总是按引用传递。
8. 重载(方法名相同但参数列表不同)和重写(子类覆盖父类方法)的区别,以及重载不依赖返回类型的原因。
9. `char`类型的存储范围,能否存储中文汉字及其原因。
10. 抽象类(`abstract class`)与接口(`interface`)的异同,包括抽象方法、静态方法、本地方法(native)和`synchronized`关键字的使用场景。
11. 静态变量和实例变量的差异,主要体现在生命周期、作用域和与类或对象的关系上。
12. `==`和`equals()`方法的区别,`==`比较的是变量引用,而`equals()`通常比较对象的内容。
这些知识点涵盖了Java编程的基础和一些进阶概念,对于Java开发者来说,理解和掌握这些内容有助于提升编程技能和解决实际问题的能力。
2019-09-05 上传
2020-05-21 上传
2021-04-28 上传
2020-02-10 上传
2021-07-08 上传
2021-09-13 上传
2021-05-09 上传
2021-05-15 上传
2022-08-03 上传
羊牮
- 粉丝: 41
- 资源: 3884
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全