为开发者而生的技术社区

让技术生根,让灵感生长。

从 Java 与 Spring,到 AI 与开源。分享经得起实践的知识,和认真做技术的人一起成长。

↗ SHARE. BUILD. GROW.
⌘探索技术专题找到你的下一站Agent21 篇文章 ↗Java559 篇文章 ↗Spring576 篇文章 ↗架构运维318 篇文章 ↗面试与职场68 篇文章 ↗

最新文章

持续更新的技术实践

Jackson 2.x 三条线同时发补丁,泛型类型 id 里的类以前能绕过白名单

Jackson 10 月 17 日发布 2.22.4、2.21.8、2.18.12,修复 databind、Avro、CBOR、Protobuf、Smile 的多个 CVE,其中 CVE-2026-110879 让泛型类型 id 里的类型参数也要过 PolymorphicTypeValidator。在 Spring Boot 3.5.16 中实测:2.21.4 和 2.21.7 会实例化白名单外的类,2.21.8 返回 400 并在日志里点名拒绝。

Starship 1.27 修了两个提示符安全洞,Kotlin DSL 的 Gradle 项目终于能显示版本号了

Starship 1.27.0(北京时间 10 月 17 日)修了 GHSA-x486(版本元数据符号链接可拖垮提示符)和 GHSA-679r(降信任仓库仍走 git 可执行文件),并把 package 模块补上 build.gradle.kts。对照 1.26.0/1.27.0 官方 musl 包,在最小 Spring Boot 4.1.1 Gradle Kotlin DSL 项目上复现了安全问题与版本号显示差异。

Claude Code 团队按风险决定一个 PR 要几个人批,我用 Spring Boot 把这套规则写成了 CI 关卡

Claude Code 团队按风险决定人工批准人数:低风险 0 人、中风险 1 人、高风险 2 人,机器人批准不算人,批准只对具体提交有效,审查三轮封顶。我用 Spring Boot 4.1.1 把这些规则写成读真实 git 数据的 CI 关卡,风险判定改用路径规则,并在 5 个样例分支上实测。

Buttondown 的创始人在 Stripe 上班时把它当副业做,现在年化收入过了 100 万美元

Newsletter 工具 Buttondown 从 2017 年起一直是创始人 Justin Duke 在 Stripe 上班之余的副业,2022 年初他才辞职全职做。按他 2026 年 9 月的自述,公司年化收入已超过 100 万美元,自筹且盈利。本文按他在 Hacker News、播客和官方年度回顾里的数字,复盘它的慢增长、辞职时机、口碑获客和定价。

JDK 27 发布前差点带上一个改坏字符串的 C2 bug,我把旧 EA 版本找回来复现了一遍

JDK 27 GA 前不到一个月,C2 的 EncodeISOArray intrinsic 被发现会把字符串前 4 个字节写坏(JDK-8390546,P1),最后在 GA 构建 27+35 里回退修掉。用 Spring Boot 实测 27-ea+23/24/34、27 GA 和 28-ea+20:ea+24 和 ea+34 稳定复现,关掉压缩对象头就消失。还钉着 27 EA 镜像的该换了。

Spring Security 的通行密钥默认存在内存里,应用一重启就得重新注册:7.1 上换 JDBC 实测

Spring Security 从 6.4 引入通行密钥起就默认把凭证存在内存里,重启后同一把密钥登录返回 401。在 Boot 4.1.1(Security 7.1.1)上用 Chrome 虚拟认证器实测:换成两个 JDBC 仓库后重启照常登录,官方建表脚本第二次启动会报表已存在;和密码组成 MFA 时要用 7.1 的 WEBAUTHN_REGISTERED 条件,否则没注册过的用户进不了注册页。

Hardwood 1.1.0.Beta2 发布,写 Parquet 时能自己切 row group,坏记录也能跳过

Gunnar Morling 的纯 Java Parquet 库 Hardwood 发布 1.1.0.Beta2:写入端新增 endRowGroup() 手动切 row group,tryWriteRow() 遇到坏记录返回 Rejected 而不中断 writer,S3 读取请求更少,还有 footer 缓存和两项破坏性变更。附 Spring Boot 4.1.1 实测:按月写 3000 行,跳过 7 条坏记录,得到 3 个 row group。