整理一次 Java 21→25 与 Spring Boot 3.5→4.0 的升级思路:动因、核心变化,以及手动迁移与 OpenRewrite 自动化两条路径上的取舍。
Posts for: #spring-boot
Java 微服务在 K8s 上的运行时基线(2026):镜像、探针、滚动与可观测
整理 Java 25 + Spring Boot 3.5 微服务上 Kubernetes 时的一份运行时基线:镜像怎么打、探针怎么配、优雅停机怎么对齐、滚动与回滚怎么做、可观测性怎么接入。重点是把现状和差距一起写出来。
全链路 Feature Flag 的升级顺序:先 backend 还是先 frontend?
在 OpenFeature + flagd 的全链路场景下,给一个需要前后端共享语义的新 flag 做灰度发布,应该先升级后端还是先升级前端?本文通过实际案例对比两种升级路径的风险,论证为什么先 backend 兼容升级、再升级 frontend 是更稳妥的策略。
用 mirrord 把本地进程接入 K8s 集群:从 Demo 到真实调试实践
通过一个 Spring Boot + MySQL + kind 的完整 Demo,演示如何用 mirrord 让本地进程「假装」自己是 K8s 里的 Pod,实现无需重新打镜像就能接入集群资源进行调试。
Spring Boot 3.5 + Java 25 微服务里,Resilience4j 用在 HTTP、Redis、Kafka、DB 上的边界与最佳实践
结合最近五年的官方文档、工程资料与技术文章,整理 Spring Boot 3.5 + Java 25 微服务中 Resilience4j 在 HTTP、Redis、Kafka、DB 外部调用上的使用边界与实践建议。
Spring Boot 3.5 + Java 25 + React:在 K8s 里跑通一套跨链路 OpenFeature flag
记录一次 SB3.5 + Java 25 + kind 环境下的方案试验:不用 Spring Cloud Config Server / Netflix 套件,做出一套 Gateway + 微服务 + React 的 OpenFeature demo,并复盘 flagd、OFREP、热加载和部署过程里遇到的几个坑。
REST API 版本管理:四种常见策略、Spring Boot 4 原生支持与一些陷阱
梳理 REST API 版本管理的四种常见策略,对比 Spring Boot 4 原生支持与历史实现方案,并整理实现过程中比较容易踩到的问题。
Liquibase (XML) 在微服务里的实践记录:一份问答式整理
围绕真实项目里常见的 Liquibase(XML)反模式,按问题整理我目前更倾向采用的一些做法:schema 归属、master changelog 组织、changeSet ID 命名、XSD 版本、初始化策略、expand-and-contract、大表 DDL、K8s lock、回滚 / tag、context / labels、Testcontainers 验证与 CI 检查。
软件供应链最小基线:SBOM + cosign 镜像签名
以问答方式拆解软件供应链最小基线:用 CycloneDX 生成 SBOM、用 cosign keyless 签名容器镜像、把 SBOM 作为 cosign attestation 绑定到镜像。覆盖为什么、具体怎么做、以及绕不开的 tradeoff。
API 与 event contract 兼容性保障:工具机制与正确用法
以问答方式拆解我在 Shop Platform 中对 API 与 event contract 的兼容性保障:BFF 对外用 oasdiff 守 OpenAPI spec;内部 BFF→MS 和 MS→MS 用 JSON Schema 快照补 japicmp 的盲区;Kafka 事件用相同手法加 per-event schemaVersion。