Multi-Release JAR (MRJAR) 靠 META-INF/versions 的目录结构,让一个 jar 在运行时各挑各的实现,向后兼容和使用新 JDK 特性不用二选一,代价是几条绕不过去的限制。
Posts for: #java
K8s 上跑 Java 的 JVM 配置:JDK_JAVA_OPTIONS、MaxRAMPercentage 与 GC 选择
结合一份 2026 年调查和我自己的阅读笔记,整理 K8s 容器化 Java 应用里三个常见 JVM 配置决策:JDK_JAVA_OPTIONS、MaxRAMPercentage,以及 GC 选择。
How Many Kafka Connections Does Your Spring Boot App Actually Use?
A practical formula for calculating Kafka TCP connection counts in Spring Boot, covering producers, consumers, AdminClient, and how to choose the right Confluent Cloud plan.
Java 25(当前 LTS)下,Record 能在多大程度上替代 Lombok?
结合 Java 25 的语言特性与常见框架约束,整理 Record 与 Lombok 的差异、适用场景,以及我目前更倾向的使用边界。
Spring Boot 应用的 Metrics 埋点:自动埋点覆盖了什么,什么时候要自己埋(2026)
以 Spring Boot 3.5 + Micrometer 为基础,整理一次应用层 Metrics 埋点实践:自动埋点覆盖范围、@Observed 注解用法、高低基数字段设计、手动 Observation API,以及与 Prometheus 和 OTel 的关系。
Java 25 on Kubernetes:默认配置未必适合容器
Java 25 跑在 Kubernetes 上,默认堆只用了 25%,CPU 节流的影响也比预期大,这几组实验数据和值得优先验证的配置项放在一起。
Spring Boot 3 开启 HTTP/2:h2 和 h2c 在什么场景下更合适?
想给 Spring Boot API 加速?来聊聊 HTTP/2 的两种模式:带加密的 h2 和“裸奔”的 h2c,看看在微服务里怎么配置和避坑。
探索定制 Spring Initializr
定制Spring Initializr,生成项目的Scaffold,减少每次创建spring boot项目的重复工作。