自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(357)
  • 资源 (1)
  • 收藏
  • 关注

原创 spring security 过滤器链相关初始化过程

Spring Security 的过滤器链(Filter Chain)初始化流程是其安全机制的核心实现,其设计目标是按特定顺序组装多个安全过滤器,形成一个完整的请求处理链。通过理解过滤器链的初始化流程,开发者可以更高效地定制安全策略,并快速定位安全配置相关的问题。Spring Security 过滤器链的初始化由。:检查 URL 路径匹配规则和过滤器的注册位置。,并注册到 Servlet 容器的过滤器链中。忽略静态资源路径,避免不必要的过滤器执行。:跟踪自定义过滤器的插入位置。:未将过滤器添加到正确的。

2025-04-05 21:58:56 524

原创 spring security 过滤器链使用

通过灵活组合这些配置,开发者可以快速实现从简单登录到复杂分布式系统的安全需求,同时保持代码的可维护性和扩展性。Spring Security 的过滤器链提供了灵活的安全控制机制,以下是其在实际开发中的。:无状态 API 服务(如使用 JWT):解析请求头中的 JWT Token。

2025-04-05 21:48:48 143

原创 spring的容器化管理如何理解

将对象的创建、依赖管理和配置逻辑从代码中剥离,交由容器统一处理。这种设计使得开发者能更专注于业务逻辑,提升代码的可维护性、扩展性和可测试性,是 Spring 框架的核心价值所在。统一管理应用中所有对象的生命周期、依赖关系和配置,取代传统开发中程序员手动创建和管理对象的方式。:餐厅有一个中央厨房(容器),厨师只需定义菜谱(配置 Bean),中央厨房会自动采购食材(创建依赖)、烹饪(组装对象),并将做好的菜(Bean)送到厨师手中。:对象不直接依赖具体实现,而是依赖接口,便于替换(如替换数据库实现)。

2025-04-03 09:29:04 737

原创 spring 中的DAO是什么

在 Spring 中,DAO 是数据访问层的核心设计模式,通过解耦、模板化和标准化,显著提升代码的可维护性和可扩展性。是一种设计模式,它的核心目标是将数据访问逻辑与业务逻辑解耦,提供一种标准化的方式操作数据源(如数据库、文件、外部 API)。Spring 对 DAO 模式提供了强大的支持,通过依赖注入、模板设计模式、统一的异常体系等特性,简化了数据访问层的开发。:将数据访问逻辑(如 SQL 查询、事务管理)封装在 DAO 层,业务层(Service 层)只需调用 DAO 方法,无需关心底层数据源细节。

2025-04-02 20:24:51 586

原创 Jenkins 中实现「当 Git 分支代码变更后自动触发构建」

• 检查 Jenkins 地址是否可从公网访问(或与 Git 服务器网络连通)。• 查看 GitHub/GitLab 的 Webhook 响应日志(通常显示。• 确保 Jenkins 凭据配置正确(如 Git 仓库的读写权限)。:如果需要验证,生成一个 Token 并在 Jenkins 中配置。• 添加 Git 仓库的访问凭据(用户名/密码或 SSH 密钥)。• 确保 Jenkins 安装了相关插件(如。• 检查轮询语法是否正确(Cron 格式)。(通用仓库,需安装插件)。(GitHub 仓库)。

2025-04-02 19:32:54 631

原创 spring security核心 AuthenticationManager providerManager AuthenticationProvider介绍

认证入口,协调认证流程。:管理多个。

2025-04-02 13:46:48 1258

原创 Linux 添加定时任务

通过上述步骤,您的 Python 脚本将在每天凌晨自动执行。建议首次测试时设置未来 2 分钟的任务(如。创建定时任务,实现每天 00:00:00 自动执行 Python 脚本。• 在 cron 任务中声明环境变量(如。将脚本输出和错误写入日志文件(可选)。在 Linux 中,您可以通过。),确认无误后再调整为长期任务。表示每天 00:00 执行。在文件末尾添加一行(按。

2025-04-01 19:27:55 268

原创 spring security的webSecurityConfig内配置多个configure是什么原因

通过这种分层配置,可以清晰地管理不同维度的安全策略,确保认证、授权、资源控制等功能的灵活性和可维护性。方法的重写,因为它们分别处理不同维度的安全配置。具体到这段代码中,覆盖了三个不同的。在 Spring Security 的配置类中,存在多个。:配置认证(Authentication)的核心组件。: 可能用于仅用户名的认证(如短信验证码登录): 可能用于密钥认证(如 API 访问密钥)• 调试模式用于查看安全过滤器链的详细信息。:配置全局 Web 安全(静态资源忽略)• 定义了用户数据的来源(

2025-04-01 11:05:57 478

原创 spring security+mybatis 和spring security + spring Data JPA 实现认证对比

Service@Overridethrow new UsernameNotFoundException("用户不存在");return orgthrow new UsernameNotFoundException("用户不存在");} }throw new UsernameNotFoundException("用户不存在");} }throw new UsernameNotFoundException("用户不存在");} }

2025-04-01 10:18:49 1380

原创 Exception in thread “Timer-557“ java.lang.OutOfMemoryError: Java heap space问题分析

JVM花费超过98%的时间执行GC,但回收的内存不足2%,通常是内存泄漏或堆过小的信号。:某些库可能存在已知内存问题(如旧版Apache HttpClient),升级到最新版本。:多个定时任务可能并发创建大量对象,或任务逻辑存在资源未释放问题。:应用需要的内存超过JVM分配的堆上限,或存在内存泄漏。:避免一次性加载全部数据到内存,使用分页或流式处理。:设置初始堆内存为2GB,避免堆动态扩展的开销。:实时监控堆内存使用情况,观察对象增长趋势。:减少临时对象创建,复用对象或使用对象池。

2025-03-31 19:26:34 424

原创 java 垃圾回收机制

步骤操作目标1使用工具分析内存快照定位泄漏对象2检查长生命周期引用(静态集合、监听器等)切断无效引用链3优化资源管理(关闭连接、弱引用)预防泄漏4调整GC策略平衡性能与内存开销通过理解垃圾回收机制、规范编码习惯,并借助工具分析,可以有效解决内存泄漏问题。

2025-03-31 19:25:18 893

原创 redis错误分析 forceUnlock的问题说明

可能导致调用方误认为强制解锁成功,而实际发生异常(如 Redis 连接超时)。:强制解锁是高危操作,需确保只有授权用户或系统可调用,避免误操作破坏业务逻辑。:捕获异常后仅记录日志,未向上传递错误或返回状态,调用方无法感知操作失败。,但可能是正常现象(如锁已自动过期),应区分场景调整日志级别。调用之间存在时间差,其他线程可能在此期间释放锁,导致。:线程A检查到锁存在 → 线程B释放锁 → 线程A调用。• 向上抛出异常或返回操作结果,让调用方明确处理。或超时设置过短),而不是依赖强制解锁。

2025-03-30 23:24:45 342

原创 spring security的过滤器链

请求按过滤器链的顺序依次通过每个过滤器,每个过滤器可选择处理请求或传递给下一个过滤器。理解过滤器链的组成和执行逻辑,是调试安全问题和实现复杂安全需求的关键。:当某个过滤器处理完请求并直接返回响应时,后续过滤器不再执行。Spring Security 的安全功能通过一系列。捕获异常 → 触发登录页跳转或返回 403。Spring Security 的过滤器链通过。最终验证权限 → 若未授权则抛出。提取凭证并认证 → 存储。

2025-03-28 18:17:04 541

原创 spring security设置多个数据源和登录验证码

通过以上方案,可灵活扩展 Spring Security 的认证能力,满足复杂业务场景需求。在 Spring Security 中集成多数据源和验证码登录需要结合。

2025-03-28 17:23:42 428

原创 spring security认证流程分析

理解此流程有助于快速定位认证问题(如密码未加密、用户服务未正确实现)并实现定制化需求(如多因素认证、第三方登录集成)。以下从整体视角分析其登录流程,涵盖从请求到认证完成的每一步细节。Spring Security 的登录流程是一个多组件协作的复杂过程,涉及。:生成新的 Session ID,防止会话固定攻击。(若启用):生成持久化 Cookie 用于自动登录。:不主动创建,但使用已存在的 Session。:无状态,不创建或使用 Session。(默认):需要时创建(如登录成功)。(基于 Session)。

2025-03-28 15:10:29 800

原创 spring security 认证流程分析

覆盖此接口以适配业务用户表结构。

2025-03-27 23:44:28 772

原创 spring security 认证流程分析

覆盖此接口以适配业务用户表结构。

2025-03-27 19:10:34 1002

原创 spring security整体架构

通过理解其架构,可快速定位安全问题(如过滤器顺序、权限配置错误),并高效实现复杂安全需求。:实现特定认证逻辑(如数据库、LDAP、OAuth2)。:配置 URL 级别的访问规则、认证方式、CSRF 等。:从存储(如 Session)加载或创建安全上下文。:按需选择功能模块(如 OAuth2、LDAP)。:根据权限规则投票(如基于角色、IP、时间)。:自动配置默认安全规则(如生成默认登录页)。:结合数据库动态加载 URL 权限规则。:加载用户数据(如从数据库查询用户)。:配置全局安全行为(如忽略静态资源)。

2025-03-27 13:17:28 957

原创 spring security的核心功能及自带的认证机制

灵活适配业务需求。

2025-03-27 12:57:28 1165

原创 nginx 配置正则映射

通过这种方式,可以灵活地将动态路径映射到物理文件路径。如果 HTML 文件存放在子目录中(如。

2025-03-26 11:26:41 302

原创 spring 设置接收json request 返回json类型response

确保模型类有无参构造函数和 getter/setter(Java)或使用data class= null,通过配置@Bean通过以上配置,Spring 应用可以轻松实现 JSON 数据的接收和返回。添加 Jackson 依赖。使用和注解。配置消息转换器(Spring Boot 自动完成)。通过定制序列化行为。

2025-03-25 12:16:13 410

原创 redis+spring 的基本操作 RedisTemplate和RedisClient

通过 RedissonClient,开发者可以轻松在 Spring + Kotlin 项目中实现复杂的分布式系统逻辑,显著简化分布式环境下的开发难度。通过以上方法,可以灵活操作 Redis 中的各类数据结构,满足不同业务场景需求。适用于存储对象或结构化数据(如用户信息、商品属性等)。适用于队列、栈或顺序数据(如消息队列、操作日志等)。适用于带权重的排序集合(如排行榜、优先级队列等)。(Redisson 客户端)可以实现丰富的。适用于存储简单键值对(如缓存、计数器等)。适用于去重集合(如标签、用户兴趣等)。

2025-03-25 11:50:41 1295

原创 spring+k8s 功能说明

的完整实例,涵盖应用开发、容器化、部署到 Kubernetes 集群的全流程。:Spring Web、Actuator(用于健康检查):通过 Service 和 Ingress 暴露应用。:利用 Actuator 端点实现存活和就绪探针。:集成 Prometheus 监控应用指标。:使用 ConfigMap 分离环境配置。:通过 Docker 打包应用。:通过 HPA 动态调整副本数。

2025-03-24 15:58:35 594

原创 RedisTemplate和RedissonClient适用的场景有什么不同

在 Spring Boot 项目中,和。

2025-03-24 13:51:27 858

原创 spring +kotlin 配置redis 和redis的常用方法

总结一下,核心注解涵盖以下方面:每个部分列出注解名称,简要说明作用,并给出代码示例。这样用户能够全面了解Spring的核心注解,并在实际开发中正确应用。以下是 Spring 框架中 核心注解 的分类整理,涵盖依赖注入、配置管理、Bean 声明等核心功能:掌握这些核心注解是使用 Spring 框架的基础,合理运用它们可以极大简化开发:结合具体场景灵活使用,能显著提升代码的可维护性和扩展性。

2025-03-24 12:10:16 1341

原创 spring 核心注解整理

总结一下,核心注解涵盖以下方面:每个部分列出注解名称,简要说明作用,并给出代码示例。这样用户能够全面了解Spring的核心注解,并在实际开发中正确应用。以下是 Spring 框架中 核心注解 的分类整理,涵盖依赖注入、配置管理、Bean 声明等核心功能:掌握这些核心注解是使用 Spring 框架的基础,合理运用它们可以极大简化开发:结合具体场景灵活使用,能显著提升代码的可维护性和扩展性。

2025-03-24 09:33:33 368

原创 spring后端处理各种请求

实现。

2025-03-23 09:34:19 1033

原创 springboot 项目如何提高并发量

使用。

2025-03-22 17:59:10 945

原创 spring MVC 介绍

(模型):封装业务数据和业务逻辑(如 POJO 对象、Service 层)。(视图):负责数据展示(如 JSP、Thymeleaf、HTML)。:Spring MVC 的入口,统一处理所有请求,协调各组件工作。:根据请求 URL 找到对应的 Controller 和方法。(控制器):接收请求,调用业务逻辑,返回模型和视图。:全局异常处理(所有 Controller 共享)。:在请求处理前后插入逻辑(如日志、权限校验)。:将请求体(JSON/XML)绑定到对象。等:简化特定 HTTP 方法的映射。

2025-03-22 17:50:11 883

原创 spring的自动配置原理

是其核心特性之一,旨在根据应用的依赖和配置环境,自动完成 Bean 的创建与配置,减少开发者的手动配置工作。Spring Boot 的自动配置通过条件化判断和约定优先的机制,大幅简化了应用的初始配置。理解这一原理,可以帮助开发者高效利用默认配置,同时灵活定制个性化需求。方法被调用,生成的 Bean 注册到容器中。目录下,定义所有自动配置类的全限定名。文件中加载所有预定义的自动配置类。Spring Boot 的。• 符合条件的配置类中的。这是自动配置的基石。,合并所有自动配置类。,获取所有自动配置类。

2025-03-22 10:45:29 812

原创 什么是分布式锁

分布式锁是一种在分布式系统中协调多个节点(服务实例)对共享资源进行互斥访问的机制。它的核心目标是确保在同一时刻,只有一个节点能执行某个关键操作,从而避免数据不一致、重复处理等问题。为什么需要分布式锁?在单机应用中,可用或多节点竞争:多个服务实例可能同时操作同一资源(如数据库、文件)。跨进程协调:单机锁无法跨进程生效,需全局协调机制。典型场景• 防止重复任务调度(如定时任务在多节点重复执行)。• 避免超卖(如秒杀活动中库存扣减)。• 保证数据一致性(如分布式事务中的临界区操作)。

2025-03-21 13:54:53 375

原创 k8s的核心组件整理

•。

2025-03-21 12:14:31 1107

原创 宝塔面板使用整理

宝塔面板极大简化了 Linux 服务器的运维操作,适合快速部署 Web 环境。但对于生产环境,仍需注意:•。

2025-03-21 09:15:03 416

原创 常用算法整理

实际应用中还需结合数据结构选择(如哈希表加速查找)和工程优化(如缓存、并行化)。:问题可分解为独立子问题,且子问题结构与原问题相同。:通过状态转移方程和备忘录(或DP表)避免重复计算。:连通性问题(如社交网络好友关系、岛屿数量统计)。• 最小生成树(Prim/Kruskal算法)。:每一步选择局部最优解,期望得到全局最优。:问题的最优解包含子问题的最优解。• 有序数组的两数之和、三数之和。• 滑动窗口(如最长无重复子串)。• 链表的环检测(快慢指针)。(局部最优能推导全局最优)。• 汉诺塔问题(递归)。

2025-03-20 17:00:20 503

原创 数据库与其所用数据结构

• WAL(Write-Ahead Logging)保证持久性(如InnoDB的Redo Log)。• 统计信息:直方图(Histogram)、基数(Cardinality)估算。• 数据先写入内存(MemTable),再批量刷入磁盘(SSTable)。:索引结构(如MySQL的InnoDB索引、Oracle的索引组织表)。:哈希索引(如MemSQL的内存表、MySQL的Memory引擎)。:存储无聚簇索引的表数据(如PostgreSQL的堆表)。分析)、连接顺序优化(如MySQL的JOIN优化器)。

2025-03-20 14:05:38 927

原创 数据结构与算法的学习路线

理解基础概念,熟悉编程语言的语法和基本操作。:理解常用数据结构的原理和操作,并能手写实现。:通过刷题巩固知识,提升解决实际问题的能力。:掌握复杂问题的解决思路和优化方法。学习数据结构和算法的路线需要结合。:掌握常用算法的思想和代码实现。:梳理知识体系,准备技术面试。:将算法知识应用到实际项目中。

2025-03-20 13:51:29 754

原创 spring 配置websocket

通过以上配置,可以实现一个高性能、安全可靠的企业级 WebSocket 服务,支持从开发到生产的全生命周期管理。• 消息往返延迟 (RTT)• 单节点最大连接数。

2025-03-19 17:47:20 1140

原创 kotlin中的list set map整理

是三种核心集合类型,它们分别适用于不同的场景,具有独特的特性和操作方式。:每个元素由键(Key)和值(Value)组成。• 键值关联数据(如用户信息表,键为用户ID)。• 需要键排序的场景(如排行榜按分数排序)。• 快速判断元素是否存在(如屏蔽词过滤)。• 需要保留元素顺序(如时间序列数据)。• 需要去重的数据集(如用户ID集合)。• 允许重复值(如购物车商品列表)。• 通过索引快速访问(如分页数据)。• 快速通过键访问值(如缓存系统)。• 集合运算(如权限交集、并集)。:元素不可重复(自动去重)。

2025-03-18 19:44:47 703

原创 总结 kotlin中的关键字和常用方法

掌握这些方法可以高效处理集合、字符串、空安全等常见场景,提升开发效率。在特定上下文中有特殊含义,其他情况下可作为标识符。: 获取首个或最后一个元素(可带条件)。用于修饰类、函数、属性等的特性。: 判断是否存在或全部满足条件。: 执行副作用操作后返回原对象。: 判断元素是否在范围或集合中。: 判断字符串是否为空或空白。: 对对象执行操作并返回结果。: 替换字符或正则匹配内容。: 配置对象属性后返回自身。: 结合对象操作与返回值。: 限制数值在指定范围内。(如变量名、函数名等)。: 对集合元素进行转换。

2025-03-18 19:25:42 627

原创 kotlin中的数据转换

在 Kotlin 中,将数字转换为字符串非常简单且灵活。通过这些方法,你可以灵活地将数字转换为字符串,并根据需求调整输出格式。若字符串包含本地化的数字格式(如逗号分隔符),可使用。通过合理选择方法,可以高效且安全地将字符串转换为数字。,但需确保字符串格式合法,否则可能抛出异常或返回。若需要特定格式(如保留小数位数),可以使用。方法或 Java 风格的格式化工具。方法,可以直接将数字转为字符串。在字符串模板中,数字会自动调用。支持二进制、十六进制等。方法,转换失败时返回。:移除非法字符后再转换。

2025-03-18 17:08:13 963

mosquitto 相关包.rar

mosquitto1.5.5 arm 交叉编译出的安装包以及中间涉及的压缩文件openssl libuuid等 交叉编译链为arm-linux-gnueabihf-gcc IMX6UL 核心板

2021-10-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除