- 博客(18)
- 收藏
- 关注
原创 Spring Security OAuth2 Resource Server:JWT 鉴权与权限映射实战
微服务接入统一登录后,业务服务通常不再负责登录和签发令牌,而是作为 OAuth2 Resource Server 校验访问令牌。真正容易踩坑的不是“解析 JWT”,而是如何可靠地校验签名、签发者、受众和有效期,如何把外部身份系统的 scope、角色映射为 Spring Security 权限,以及如何区分 401 与 403。本文基于 Java 21、Spring Boot 3.x 和 Spring Security 6,给出一套可直接落地的 JWT 鉴权方案,并补充接口授权、方法授权、错误响应、自动化测试
2026-07-05 20:43:10
164
原创 Spring Boot 3 可观测性实战:Micrometer Tracing 与 OpenTelemetry
线上接口变慢时,只看一条异常日志通常无法回答“请求经过了哪些服务、慢在哪一步、是否影响所有用户”。可观测性要把日志、指标和链路追踪关联起来,让开发者从一次请求的 TraceId 出发,定位到具体服务、Span、数据库调用和业务阶段。本文基于 Java 21 与 Spring Boot 3.x,使用 Actuator、Micrometer Observation、Micrometer Tracing 和 OpenTelemetry OTLP 构建一套可落地方案,覆盖依赖配置、TraceId 日志关联、跨服务传
2026-07-05 20:41:40
228
原创 CompletableFuture 实战:异步编排、超时控制与异常治理
CompletableFuture` 的价值不只是“把任务放进线程池”,而是用声明式方式表达任务之间的依赖关系。真正的生产难点也不在 `supplyAsync`,而在线程池隔离、超时边界、异常传播、上下文传递和降级策略。本文以 Spring Boot 聚合接口为例,完整实现三个下游服务的并行调用,并解释 `thenApply`、`thenCompose`、`allOf`、`orTimeout`、`exceptionally`、`handle` 等 API 的适用边界。
2026-07-04 12:29:39
359
原创 Spring Boot 接口幂等设计:幂等键、唯一索引与订单状态机
支付、下单和发券接口经常因为网络超时、客户端重试、消息重复投递而被执行多次。真正的接口幂等不是简单加锁,也不是前端按钮置灰,而是让同一个业务请求无论到达多少次,都只产生一次业务副作用,并向调用方返回可预测的结果。本文基于 Spring Boot 和 PostgreSQL 实现一套可落地的幂等键方案,并讨论唯一索引、请求指纹、结果回放、Redis 快速拦截、事务边界与状态机设计。
2026-07-04 12:27:17
380
原创 Spring Boot + Redis 缓存一致性实战:穿透、击穿、雪崩一次讲清
在 Spring Boot 项目中引入 Redis 并不困难,真正复杂的是并发访问下的数据一致性与缓存失效问题。本文以商品查询为例,完整实现 Cache-Aside 旁路缓存,解释为什么更新数据后通常选择删除缓存,并逐步解决缓存穿透、热点 Key 击穿和大量 Key 同时过期造成的缓存雪崩。同时讨论分布式锁安全释放、随机 TTL、逻辑过期、事务提交后删除缓存及可靠失效方案,帮助读者建立可用于生产环境的缓存设计思路。
2026-07-02 15:54:47
198
原创 Java 21 虚拟线程实战:Spring Boot 并发性能、线程固定与排障指南
Java 21 将虚拟线程正式带入生产环境,Spring Boot 也提供了开箱即用的支持。虚拟线程能够显著降低阻塞式高并发应用的线程成本,但它并不会让单个任务执行得更快,也无法突破数据库连接池、下游限流和 CPU 等资源上限。本文通过可运行示例讲解 Spring Boot 虚拟线程的启用方式、适用场景、性能测试方法和资源治理原则,并重点分析 Pinned Virtual Thread 的成因以及使用 JFR、`jcmd` 定位线程固定问题的方法。
2026-07-02 15:53:16
195
原创 Spring Boot 3 数据访问全攻略:HikariCP、Druid、JdbcTemplate 与 MyBatis CRUD
一篇讲透 Spring Boot 3 数据访问完整链路,覆盖 HikariCP、Druid 监控、JdbcTemplate、MyBatis 注解与 XML、动态 SQL、事务、密码哈希、CRUD 接口、集成测试及常见报错排查,并给出旧版教程迁移到 Spring Boot 3 的关键变化。
2026-06-30 22:30:59
210
原创 Spring Boot Web 开发一篇打通静态:资源、Thymeleaf、MVC 扩展、文件上传与 Tomcat 部署
一篇讲透 Spring Boot Web 开发核心链路,覆盖静态资源映射、Thymeleaf 表达式、Spring MVC 自动配置、WebMvcConfigurer、拦截器、日期转换、文件上传、Servlet 组件、内嵌 Tomcat 与 WAR 部署,并补充 Spring Boot 2.x 升级 3.x 的常见变化。
2026-06-30 22:13:50
331
原创 Spring Boot 配置文件到底加载哪一个?4 个默认位置、优先级与覆盖规则一次讲透
file:./表示程序启动时的当前工作目录。如果在 IDEA 中运行,通常是项目根目录;那么当前终端所在的目录就是file:./。外部配置的优先级高于 JAR 内部配置。config目录的优先级高于同级根目录。相同属性会被覆盖,不同属性会形成互补。> file:./掌握这个顺序后,绝大多数“为什么我的没生效”的问题都能快速定位。
2026-06-28 22:40:47
209
原创 Git 版本控制从入门到实战:一篇讲透仓库、分支、远程协作与 GitLab
本文系统整理 Git 版本控制核心知识,从 Git 的工作区、暂存区、本地仓库、远程仓库讲起,覆盖 init、add、commit、log、diff、reset、restore、分支管理、冲突解决、stash、GitHub/GitLab 推送拉取、远程分支、标签管理和 IDEA 集成。适合初学者收藏,也适合面试前快速复习。
2026-05-21 17:09:46
421
原创 SpringMVC 超详细入门教程(剩余部分)
SpringMVC 是 Java Web 开发中的核心框架之一。重点掌握:MVC 架构执行流程Controller视图解析器这些内容也是面试高频。参数绑定:SpringMVC 自动将请求参数赋值给方法参数。SpringMVC 会自动封装。RESTful 风格:通过 URL 表示资源。/user/1/user/2/user/3参数绑定是 SpringMVC 最核心的内容之一。重点掌握:基本类型绑定JavaBean 绑定集合绑定RESTful。
2026-05-20 21:10:24
357
原创 SpringMVC 参数绑定详解SpringMVC 参数绑定详解(超全面)
RESTful 风格:通过 URL 表示资源。/user/1/user/2/user/3参数绑定是 SpringMVC 最核心的内容之一。重点掌握:基本类型绑定JavaBean 绑定集合绑定RESTful。
2026-05-10 21:32:51
37
原创 SpringMVC 超详细入门教程(建议收藏)
SpringMVC 是 Spring 框架中的一个 Web 模块,主要用于处理 Web 请求。它属于 MVC 分层架构中的表现层框架。MVC 分为:Model(模型层)View(视图层)Controller(控制层)SpringMVC 本质上就是一个基于 Servlet 的 MVC 框架。
2026-05-10 21:30:51
61
原创 Maven入门到进阶全解析(超详细整理)
Maven是一个Java项目管理和构建工具,提供自动化构建、依赖管理和统一项目结构三大核心功能。它通过标准目录结构和POM文件配置,解决了传统开发中手动管理jar包、构建步骤繁琐等问题。Maven的核心概念包括项目构建生命周期、依赖管理机制(自动下载和解决冲突)、坐标定位系统(groupId/artifactId/version)以及本地/中央/私服三级仓库体系。典型应用场景包含一键式构建(clean/compile/test/package)、团队协作开发以及企业级私服部署。其优势在于标准化开发流程、提高
2026-03-29 17:33:51
339
原创 【JavaWeb 核心】Servlet 从入门到精通(超详细版)
摘要:本文系统介绍了Java Web开发中的核心组件Servlet。首先阐述了Servlet作为三大组件之首的核心作用,即处理HTTP请求。详细讲解了Servlet的实现方式,包括直接实现Servlet接口和继承HttpServlet类,重点说明了生命周期方法init()、service()、destroy()的执行流程。文章还演示了Servlet的配置方式(web.xml或注解),分析了请求处理流程,并强调开发中应优先使用HttpServlet处理GET/POST请求。最后指出了Servlet的单例多线程
2026-03-22 22:12:15
378
1
原创 ES6 语法全整理(前端进阶必备)
ES6(ECMAScript2015)是JavaScript的重大升级,引入众多新特性提升开发效率。主要改进包括:块级作用域(let/const)、箭头函数、解构赋值、模板字符串、默认参数、展开运算符、对象简写等语法优化;新增Promise解决异步问题,支持模块化开发;提供class类语法、Symbol类型及Set/Map数据结构。这些特性使代码更简洁(箭头函数、模板字符串)、数据处理更强大(解构、扩展运算符)、结构更清晰(class、模块化),并改善了异步编程体验(Promise),显著提升了JavaSc
2026-03-22 19:24:22
244
原创 Java容器类全解析:Collection与Map
Java 容器框架核心思想:List -> 有序可重复\ Set -> 无序不重复\ Map -> 键值对开发中最常用集合:ArrayListHashSetHashMap理解底层结构、时间复杂度和使用场景,对于写高效代码和技术面试都非常重要。
2026-03-05 23:25:32
288
原创 MATLAB高效编程:疑难杂症全解析
性能优化问题语法与编程错误图形与可视化问题工具箱与函数使用问题MATLAB调试器使用性能分析工具日志与错误捕获并行计算问题跨平台兼容性问题第三方库集成问题代码规范建议学习资源推荐
2026-03-05 23:22:17
60
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅