API 与 event contract 的兼容性保障按问答拆开:BFF 对外用 oasdiff 守 OpenAPI spec,内部 BFF 到 MS、MS 到 MS 用 JSON Schema 快照补 japicmp 的盲区,Kafka 事件再加 per-event schemaVersion。
Posts for: #spring-boot
微服务契约兼容性的五层防线:从 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 能解决的问题。一次 Spring Boot 3.5 + Micrometer + OpenTelemetry 的复盘:用 W3C Trace Context、baggage 白名单和 auto-configured RestClient.Builder 把 trace 和业务上下文一起稳定地跨服务传下去。
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 当前实现里,wallet-service 的 PaymentIntent 抽象、Stripe/PayPal/Klarna/Wallet 支付方式矩阵、Mock 与真实网关的切换已经跑通,webhook、退款幂等和 Payment Element 还没落地。
电商 Guest-First 购物体验:无需注册也能完整下单
注册门槛往往会抬高结账流失。Shop Platform 现在的做法是 guest JWT 加 Redis 游客购物车(TTL 48 小时),游客订单靠 order_token 追踪,登录后再合并购物车;buyer-portal 和 buyer-app 在这段体验上还有差别。
Spring Boot 3.4+ 的结构化日志:5 行配置启用 ECS,用 Fluent API 写出 OpenSearch 可查的字段
Spring Boot 3.4+ 内建了 ECS 结构化日志支持,5 行配置能替掉大部分手写的 logback-spring.xml,再用 SLF4J Fluent API 把字段写成 OpenSearch 查得到、聚得起来的样子。
Spring Boot 3.5 Tracing:接完之后,PII 和采样怎么管
结合一次 Spring Boot 3.5 tracing 接入:自动配置覆盖范围、自定义埋点、Kafka/Redis/DB 组件接入、采样策略、PII 处理,以及用 ArchUnit 约束常见误用。