前端笔记
未读
在 VSCode 中配置 tsconfig.json 的 paths 别名,让代码更清爽!
你是否在 Vue、React 或 TypeScript 项目中写过这样的导入语句? import utils from '../../../utils/index';
import Header from '../../../../components/Header.vue'; 路径又长又难记,还容
后端笔记
未读
别再重复加密密码了!Spring Security 中正确验证旧密码的方式
在使用 Spring Security 构建用户认证系统时,我们通常会通过 BCryptPasswordEncoder 对用户密码进行加密存储,以保障安全性。但在实现“修改密码”功能时,我曾犯过一个看似低级却非常典型的错误——对用户输入的旧密码再次加密,然后与数据库中的密文直接比对。 直到调试时才发
项目开发
未读
四种主流限流算法详解:固定窗口、滑动窗口、漏桶与令牌桶
在高并发系统中,限流(Rate Limiting) 是保障服务稳定性的重要防线。面对突发流量,合理的限流策略能有效防止系统雪崩。目前主流的限流算法主要有四种:固定窗口、滑动窗口、漏桶(Leaky Bucket)和令牌桶(Token Bucket)。它们各有优劣,适用于不同场景。 本文将深入对比这四种
后端笔记
未读
基于 Redisson 实现精细化接口限流:普通用户 vs VIP 用户的差异化控制
在高并发系统中,限流(Rate Limiting) 是保护后端服务不被突发流量打垮的关键手段。但传统的“一刀切”限流策略往往无法满足业务多样性需求——比如,我们希望 普通用户每秒最多调用 1 次接口,而 VIP 用户可以调用 5 次。 本文将带你使用 Redisson + Redis 实现一种灵活、
后端笔记
未读
MySQL中JSON字段类型反序列化问题
😀问题描述 在 MyBatis-Plus 中,若想将数据库中的 JSON 字段 自动映射为 Java 对象(如 Map<String, Object> 或自定义 POJO),通常会使用内置的 JacksonTypeHandler。 但仅配置typeHandler是不够的,你还需要开启一个关键开关:
前端笔记
未读
使用Axios请求同时上传图片和额外表单数据
export const addChart = (file, extraData = {}) => {
const formData = new FormData()
// 1️⃣ 添加文件(比如用户选择的图片、CSV、Excel 等)
formData.append('f
项目开发
未读
使用Docker容器安装MySQL
1. 安装并配置 Docker # 安装 Docker
yum install docker
# 启动 Docker 服务
systemctl start docker
# 查看 Docker 状态(应显示 active (running))
systemctl status docker
#