同一句 Class.forName 在 IDE 里跑得好好的,打成 fat jar 就报找不到类:看打包形态给的是哪个 application class loader,也看这条线程的 TCCL 是继承创建者的还是被 ThreadFactory 设过。
Posts for: #java25
Feature Flag 的升级顺序:先 backend 还是先 frontend?
OpenFeature 加 flagd 的全链路场景下,一个前后端共享语义的新 flag 要灰度,先升级后端还是先升级前端?两条路径的风险对比下来,先让 backend 兼容、再升级 frontend 通常少踩一些坑。
Spring Boot 3.5 + Java 25 微服务里,Resilience4j 用在 HTTP、Redis、Kafka、DB 上的边界与最佳实践
结合最近五年的官方文档、工程资料与技术文章,整理 Spring Boot 3.5 + Java 25 微服务中 Resilience4j 在 HTTP、Redis、Kafka、DB 外部调用上的使用边界与实践建议。
软件供应链最小基线:SBOM + cosign 镜像签名
软件供应链的最小基线按问答展开:CycloneDX 生成 SBOM、cosign keyless 给镜像签名、再把 SBOM 作为 attestation 绑到镜像上,为什么这么做和绕不开的 tradeoff 一并回答。
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。
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 如何串起来。
把单体数据库迁移拆成三阶段:Liquibase Split POC 的落地结构与踩到的坑
用 Spring Boot 3.5 + Java 25 + Liquibase + PostgreSQL 做了一个可运行 POC,验证如何把单体应用的数据库迁移拆成 Phase 1 单体、Phase 2 共享库拆 changelog、Phase 3 独立数据库三阶段,并记录实际踩坑与验证结果。
Spring Boot 3.5 + Java 25 + React:在 K8s 里跑通一套跨链路 OpenFeature flag
不用 Spring Cloud Config Server 也能把 feature flag 做出来:Gateway、微服务和 React 三个角色共用同一个 flagd,热加载方案选型和 OFREP 跨栈一致性都在 kind 环境里验证过。
Spring Boot 3.5 BFF 出站 HTTP 客户端:连接池、超时与 HTTP/2 实战
BFF 调用多个下游 microservice 时,连接池要不要按服务隔离?connectTimeout / readTimeout 怎么 per-service 配置?Spring Boot 3.5 内部服务用 h2c 要避哪些坑?把这三个常见问题理清楚。