
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
基于相邻元素的比较与交换,是一种交换排序。每一轮都会把当前未排序区间的最大值 “冒泡” 到区间尾部。每一轮在未排序区间中找到最小值(或最大值)将其与未排序区间的第一个元素交换位置重复上述步骤,直到整个数组有序初始化:默认数组第一个元素为已排序部分,其余为未排序部分。遍历待插入元素:从第二个元素(i=1)开始,逐个处理未排序部分的元素。查找插入位置:将当前元素(key)与已排序部分从后往前比较,大于
本文深入解析了若依框架中基于RBAC模型的Spring Security权限控制实现。主要内容包括:1)RBAC核心模型(用户-角色-权限关系);2)Spring Security配置类详解(认证管理器、密码加密器、安全过滤器链);3)方法级权限注解对比(@Secured/@PreAuthorize/@PostAuthorize);4)白名单与忽略名单的动态配置机制;5)JWT令牌验证流程与登出处

本文详细分析了若依框架中基于SpringSecurity的登录认证流程。系统首先进行验证码校验,从Redis获取并比对验证码。然后进行用户名密码的前置校验,包括长度限制和IP黑名单检查。核心认证过程通过AuthenticationManager触发,调用UserDetailsService加载用户信息并验证密码。认证成功后生成JWT令牌,并记录用户登录信息。文章还深入探讨了配置管理策略(数据库动态

本文深入解析了若依框架中基于Spring Security的用户权限系统实现。通过分析获取用户信息和菜单接口的核心代码,揭示了权限验证与菜单构建的关键机制:1)用户信息接口实时校验并更新权限缓存,确保数据一致性;2)菜单系统采用递归算法构建树形结构,支持管理员与普通用户的差异化权限;3)独创的@ss注解简化权限校验,通过上下文传递实现灵活控制。系统通过JWT过滤器维护安全上下文,结合Redis缓存

(简单说就是专门帮你实现 “在指定时间做某件事”“每隔一段时间重复做某件事” 的工具),几乎是 Java 定时任务的标配方案。而这个类有两个子类,因为两个类都需要记录日志,有一些公共的方法,所以都继承AbstractQuartzJob。如果任务状态为 “暂停”,则在注册后立即暂停该任务,确保任务状态与数据库配置一致。清除调度器中已存在的所有任务,避免项目重启后出现任务重复或残留的问题。检查调度器中

若依定时任务的初始化。
本文深入解析了若依框架中基于SpringSecurity的数据权限实现机制。主要内容包括:1. 权限分类:菜单权限控制界面操作入口,数据权限控制数据访问范围;2. 实现原理:通过自定义注解+AOP+SQL拼接实现动态数据过滤;3. 数据权限级别:全部、自定义、部门、部门及以下、仅本人五种级别;4. 安全机制:采用${}直接拼接SQL片段,但通过后端严格控制防止注入;5. 核心流程:通过角色权限判断

本文探讨了秒杀系统中常见的问题及解决方案。首先分析了简易实现中存在的库存超卖问题,通过对比悲观锁和乐观锁的特性,选择采用乐观锁结合MySQL行锁机制来保证库存扣减的原子性。接着针对一人多单问题,提出使用悲观锁对用户ID加锁的方案,并详细解释了事务代理、锁范围控制等关键实现细节。最后指出单机锁在集群环境下的局限性,为后续引入Redis分布式锁解决集群并发问题做铺垫。全文通过流程图和代码示例,系统性地

本文介绍了基于Redis实现分布式锁解决秒杀系统中集群模式下"一人多单"问题的方案。首先分析了单机锁在集群环境中的局限性,提出使用Redis分布式锁确保不同服务器获取同一把锁。通过设置锁过期时间防止死锁,并采用UUID+线程ID作为唯一标识解决误删问题。针对锁释放的原子性问题,引入Lua脚本确保判断和删除操作的原子性执行。最后指出当前方案仍存在的不可重入、死锁风险及主从同步问题

本文介绍了Redisson分布式锁的实现原理及其优势。Redisson通过可重入锁机制、自动续期(看门狗)策略解决了原生Redis锁的不可重入、不可重试和锁过期问题。其核心在于使用Hash结构存储锁信息,支持线程重入,并通过定时任务自动续期避免业务未完成时锁提前释放。此外,Redisson的MultiLock机制通过多节点独立加锁方式解决了主从不一致问题,确保锁的高可靠性。文章详细分析了加锁/解锁








