LTW加载时织入 导言Spring Boot 应用中,基于注解的 AOP 切面只能作用于由 Spring 容器管理的 Bean。对于第三方 JAR 包中的类(未被 Spring 管理),常规 AOP 无法生效。为此,可引入 LTW(Load-Time Weaving),在类加载时动态织入切面逻辑,从而修改第二方或第三方代码的行为。 引入依赖123456789<dependency> <gro 2026-01-29 Java > 工程实践
数据库基础 数据库设计范式数据库规范化(Normalization)是关系型数据库设计中用于减少数据冗余、避免更新异常、提高数据一致性的一系列理论规则。范式从第一范式(1NF)到第六范式(6NF)逐级增强约束,实际开发中最常用的是 1NF ~ 3NF,部分场景会用到 BCNF。 术语定义超键(Superkey)能够唯一标识表中每一行记录的一个或多个属性的集合。例如:在学生表 (学号, 身份证号, 姓名) 中 2026-01-19 存储系统 > 数据库基础 #存储系统 #数据库基础
加密字段模糊搜索 导读加密字段由于“雪崩效应”特性,无法直接进行 SQL 模糊查询,但在实际业务中往往有脱敏字段的模糊搜索需求。本文介绍主流的安全实现思路(分片哈希索引法),兼顾安全与业务需求,并提供代码与原理讲解实现“加密字段模糊搜索”。 背景敏感信息(如手机号、身份证号、银行卡号、地址等)加密后无法直接使用 SQL 的 LIKE ‘%xxx%’ 进行模糊搜索,因为加密是“雪崩效应”的:明文微小变化 → 密文完全 2026-01-14 Java > 工程实践
React类组件全局变量陷阱:深度解析实例隔离问题 导言在使用 React 类组件(Class Components)开发复杂表单或高复用性的业务页面时,开发者往往会为了方便定义一些辅助性的数据结构。然而,一个隐蔽且致命的错误是:将本应属于组件实例的变量定义在类外部的模块作用域中。 这种做法会破坏组件的封装性,导致多个组件实例意外共享同一份内存数据。在多 Tab 切换、路由缓存(如使用 keep-alive 或 @withActivation)以及 2026-01-09 前端 > React #React #JavaScript #最佳实践
熔断限流框架 导言在分布式系统架构中,熔断和限流是确保系统高可用性与稳定性的重要手段。当前业界广泛使用的三大主流开源熔断限流框架分别是:Hystrix、Sentinel、Resilience4j。这些框架主要提供以下功能: 熔断(Circuit Breaker):当调用某个微服务接口出现故障(如超时或异常)比例过高时,临时阻断对该接口的调用请求,防止错误在系统内蔓延,保证核心服务的可用性。 限流(Rate L 2026-01-08 Java > 工程实践 #熔断 #限流
Git Git 使用简介Git 是目前业界最主流的分布式版本控制系统(Distributed Version Control System, DVCS),广泛用于源代码管理。与传统的中心化版本控制系统(如 SVN、CVS)相比,Git 的最大特点是分布式架构,即每个开发者本地都拥有完整的代码仓库和版本历史,无须始终依赖中心服务器。 分布式 VS 中心化: 中心化(如 SVN): 所有操作都依赖中央服务器 2026-01-06 Git #Git
虚拟线程 JDK21 之前的多线程模型在 JDK21 之前,Java 的多线程全部依赖于平台线程(即操作系统线程),JVM 直接将线程的创建与调度全部交给操作系统内核负责。主要调度机制包括: 抢占式调度:高优先级线程可随时中断低优先级线程。 时间片轮转:同一优先级的线程以时间片为单位轮流执行,时间片用完主动让出 CPU。 多级反馈队列:IO密集型线程优先级会被提升,CPU密集型则可能被降低,有助于提高系统 2026-01-06 Java > 并发
全局异常捕获 导言 上图展示的是杭州市民卡APP在2026年1月1日出现的一次典型错误案例:由于埋点功能的异常,不仅导致了主流程中断,还将详细的异常堆栈信息暴露给了用户。这种现象不仅影响了用户体验,也存在安全隐患。如何规范地进行全局异常处理,将在下文详细介绍。 全局异常捕获是现代 Java Web 项目架构不可或缺的一环。它能够集中管理和处理系统中可能出现的各类异常,提升 API 的健壮性、可维护性和用户友好 2026-01-05 Java > 工程实践 #Java #全局异常
Python基础语法 1. 类型1.1 基础类型Python中基础类型包含整数、浮点数、布尔值、字符串、元组。 123456a = 10b = 10000000000c = 1.5flag = Trues = "abc"print(s) Python中的整数不同于C/Java,Python的整数没有溢出,底层被视为动态长度的 C 语言结构体。 123# 合法x = 10**100print 2025-12-31 编程语言 > Python #编程语言 #Python