围绕真实项目里常见的 Liquibase(XML)反模式,按问题整理我目前更倾向采用的做法:从 changelog 怎么组织、changeSet 怎么命名,到大表 DDL、K8s 下的锁和回滚,最后是 CI 里怎么把这些挡住。
Posts for: #spring-boot
REST API 版本管理:四种常见策略、Spring Boot 4 原生支持与一些陷阱
四种常见的 REST API 版本管理策略各有代价,Spring Boot 4 的原生支持进来之后,跟历史实现方案怎么取舍、哪些坑容易踩到,得重新对一遍。
shop-starter-http-client 接入:跑通第一个 @HttpExchange 客户端
Step-by-step 指南,按这套步骤通常可以在 Spring Boot 3.5 BFF 工程里跑起第一个 @HttpExchange 出站客户端。
API 与 event contract 兼容性保障:工具机制与正确用法
API 与 event contract 的兼容性保障按问答拆开:BFF 对外用 oasdiff 守 OpenAPI spec,内部 BFF 到 MS、MS 到 MS 用 JSON Schema 快照补 japicmp 的盲区,Kafka 事件再加 per-event schemaVersion。
微服务契约兼容性的五层防线:从 ArchUnit 到 japicmp
只共享 contracts 往往还不够。按我目前的理解,更稳妥的做法是把 ArchUnit、japicmp、Deprecation/Sunset 头、ignore-unknown、WireMock 组合起来,Shop Platform 里的落地方式和几份可参考资料放在一起。
用 Maven Archetype 管理微服务 Scaffold:为什么暂时不用 Spring Initializr
多模块 Maven 单仓微服务平台里,脚手架我选了 Maven Archetype 而不是 Spring Initializr,选型理由、六类 Archetype 的分层逻辑、为什么 Archetype 本身也要有测试、版本怎么维护,都收在这一篇。
Java 项目怎么做 contract testing:一次 Spring Cloud Contract 实践
基于 java-contract 仓库的工程复盘:REST API 和 Kafka 消息 contract 如何在 Java 25 + Spring Boot 3.5 + Maven 多模块项目里分别落地,producer 验证、consumer stubs 和 CI Quality Gates 如何串起来。
Spring Boot 3.5 微服务 tracing 为什么会断链:换客户端、换协议还是换设计
Tracing 断链很少是 @HttpExchange 能解决的问题。能不能把 trace 和业务上下文一起跨服务传下去,取决于 W3C Trace Context、baggage 白名单和注入的 RestClient.Builder 这三样。
Claude Code 用在 Spring 项目上的工程纪律:Context、Skills、Hooks、MCP、Workflows
Thomas Schilling 在 Spring I/O 2026 讲《Claude Code for Spring Developers》:PhotoQuest 的一个功能从 vibe coding 翻车起步,一路补出来的东西最后成了会复利的 agent stack。
Stripe 支付接入基线:PaymentIntent 抽象、Mock/真实网关切换与后续 Webhook 演进
接入真实支付前,得先把支付抽象和 provider 边界理顺。Shop Platform 目前跑通的是 PaymentIntent 抽象和 Mock 与真实网关的切换,webhook、退款幂等和 Payment Element 还没落地。