最新文章

Spring Boot 2 升 3:两条命令搞定 95%,AI 收尾

Spring Boot 2 升 3:两条命令搞定 95%,AI 收尾

一年多前,我在另一个迁移项目里尝试过 OpenRewrite,做了可行性验证,最终评估下来方案不合适,那个项目转而采用了 AI 的方式。顺着那次探索写了个系列,然后就搁置了。最近真正的迁移计划提上日程,翻出来一看——当时踩过的坑、记下来的东西,全都用上了。 任何学习和痛苦都不会白费,只是兑现的时间不一定。 为什么迁移这么痛 Spring Boot 2 的 EOL 早已过去,但很多团队的升级计划还停在 Jira 的某个角落吃灰。不是不想升,是真的怕。 怕什么?怕的不是技术本身,而是规模。javax.* 全部变成 jakarta.*,Spring Security 配置 API 重写,WebMVC 和异步配置的适配器类被移除,JUnit 4 注解也换了一套。任何一个变化单独处理都不难,但加在一起,乘以整个代码库的文件数量,就成了一个让人望而却步的工程量——而且还是那种高度重复、极易出错、回归验证代价极高的工作。 这类变更有一个共同特征:规则清晰,但执行枯燥,且不能出错。每一处 javax.persistence.Entity 都应该改成 jakarta.persistence.Entity,没有例外。这种工作本质上不需要人来做判断,它需要的是一种可以精确、批量、可审计地修改代码的机制。 OpenRewrite 就是为此而生的。 OpenRewrite 是什么 OpenRewrite 是一个专为大规模代码变更设计的自动化重构引擎,最初由 Netflix 内部孵化,现在由 Moderne 维护。它的核心思想是:把代码解析成一棵无损语义树(Lossless Semantic Tree,LST),在树上做精确变换,再把结果写回代码——全程保留原有的格式、注释和空白。

About Me

张晓辉

英文名 Addo。 资深程序员,LF APAC 开源布道师,CNCF Ambassador,云原生社区管委会成员,公众号“云原生指北”作者,微软 Azure MVP。 曾任职于汇丰软件、唯品会、数人云、小鹏汽车,有多年的微服务和基础架构实践经验,主要工作涉及微服务、容 …

进一步了解