什么是泛型(generics) 是在定义类、接口和方法时,可以在声明时通过一定的格式指定其参数类型 使用时再指定具体的类型,从而使得类、接口和方法可以被多种类型的数据所实例化或调用 这种可以在编译时进行参数类型检查的技术被称为泛型,是JDK5中引入的一个新特性 本质是参数化类型给类型指定一个参数,在使用时再指定此参数具体的值,那这个类型就可以在使用时决定 Generics的优点 把运行时的错误,提前到编译时,这样就可以在编译时把错误提示出来,避免了运行时出现错误 使用泛型可以提高代码的复用性,因为它可以支持多种类型的数据。 为什么要用泛型(generics) 在没有泛型之前,从集合中读取到的每一个对象都必须进行类型转换 如果插入了错误的类型对象,在运行时的转换处理就会出错 集合容器里面如果没指定类型默认都是Object类型,那什么到可以插入 减少了源代码中的强制类型转换,代码更加可读 作用域 泛型类 public class soulboy <泛型类型1,泛型类型2……> { …… } 泛型接口 interface soulboy <泛型类型1,泛型类型2……>....
分布式锁知识回顾 业务场景 优惠券领券限制张数 商品库存超卖 …… 起因 为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度 利用互斥机制来控制共享资源的访问,这就是分布式锁要解决的问题 实现目标 保证同一时间只有一个客户端可以对共享资源进行操作。 解决方案 Redis+Lua脚本 使用Redission框架(底层也是Lua+WatchDog机制) Redis主从架构下的锁同步问题 生产环境下一般都是集群部署,则存在主从架构下的锁同步问题。 节点一在主节点获取分布式锁成功。 Redis主节点再同步数据到从节点时宕机,数据没同步成功。 高可用机制则Redis从节点升级为主节点(但是没有锁信息)。 节点二在新的Redis上也成功获取分布式锁。 导致一个锁资源同时被两个节点获取,这个就出现了问题。 Redlock算法 官方文档 Redis从3.0版本开始支持 Redlock算法,通过在多个 Redis 节点上创建同一个锁来防止主从节点之间出现的数据不一致的问题。 在 Redlock 算法中,需要从多个Redis节点获取锁,并对取锁结果进行校验,从而避免....
Node.js环境安装 Node版本选择 下载地址:https://nodejs.org/en/download Windows11安装Node.js参考步骤 切换镜像测试 # 切换镜像源 npm config set registry https://registry.npmmirror.com # 查看是否生效 npm config get registry # 进行安装测试 npm install -g express VScode(Visual Studio Code) 下载地址:https://code.visualstudio.com/Download Vue官网 快速上手 通过CDN使用Vue <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</t....
Web UI 自动化测试 利用软件工具模拟用户在图形界面上与应用程序交互的过程,自动执行测试用例并验证 UI 的功能是否符合预期 使用自动化工具来打开网站/定位页面元素、操作元素(如输入文本、点击按钮等)模拟用户行为(如下拉菜单、滑动页面等) 通过 UI 自动化测试可以 提高测试效率、确保回归测试的全面性,减少重复工作,且对持续集成和持续部署过程帮助很大 UI 自动化技术也可以爬取网页的核心内容,并且结合数据处理,存储到数据库和二次使用,即爬虫应用 优点: 高效率 可以在较短时间内执行大量的测试用例,提高测试效率,对于回归测试,可以显著减少测试所需的时间和人力。 减少人为错误 自动化测试脚本是由代码控制的,相比于人工测试,可以减少由于人为因素导致的错误。 可重复性和一致性 自动化测试脚本可以反复执行,每次测试的条件和步骤都是一致的,保证测试的一致性和可重复性。 更好的资源利用 自动化测试可以在非工作时间执行,如夜间,充分利用无人值守时间,提高了资源的利用率。 缺点: 不能完全取代手工测试 自动化测试虽然可以执行大量的测试用例,但对于一些需要人脑判断结果的测试用例 或者对于新功能的首次测....
该文章已经加密。
RBAC RBAC 就是一个权限控制模型,这个模型是经过时间沉淀之后,相当通用、成熟且被大众接受认可的一个模型。我的理解是 RBAC 和数学公式是一个道理,数学题可以套用数学公式,而权限系统也可以套用 RBAC 权限模型。 RBAC(Role-Based Access Control)权限模型的概念,即:基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限。 利用 MySQL 数据库实现了 RBAC 权限模型。因为 MySQL 支持 JSON 类型的字段,所以我们定义多对多关系的时候,可以使用 JSON 数组字段。虽然 Phoenix 也支持 JSON 类型字段,但是相关的函数较少,而且 JSON 类型字段不支持表连接。所以在 Phoenix 中,我们只能用交叉表记录多对多关系了。 一、IDEA 连接 Phoenix 由于 Phoenix 自带的命令行客户端没有图形界面直观,所....
JWT JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为 JSON 对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。 下列场景中使用 JSON Web Token 是很有用的: Authorization (授权) : 这是使用 JWT 的最常见场景。一旦用户登录,后续每个请求都将包含 JWT,允许用户访问该令牌允许的路由、服务和资源。单点登录是现在广泛使用的 JWT 的一个特性,因为它的开销很小,并且可以轻松地跨域使用。 Information Exchange (信息交换) : 对于安全的在各方之间传输信息而言,JSON Web Tokens 无疑是一种很好的方式。因为 JWT 可以被签名,例如,用公钥/私钥对,你可以确定发送人就是它们所说的那个人。另外,由于签名是使用头和有效负载计算的,您还可以验证内容没有被篡改。 传统的单体 JavaW....