VMware 发布了 Spring Framework 6 和 Spring Boot 3。在 Spring Framework 5 发布 5 年之后,这些新版本开启了 Spring 生态系统的新时代。Spring Framework 6 需要 Java 17 和 Jakarta EE 9,并与最近发布的 Jakarta EE 10 兼容。它还通过带有跟踪和指标功能的 Micrometer 内嵌了可观察性。Spring Boot 3 需要 Spring Framework 6,内置支持使用 GraalVM 原生镜像的静态预先编译(AOT)构建原生可执行文件。关于这两个新版本框架的更多细节可以在 InfoQ 的这个报道中找到。
InfoQ 就这两个新版本的框架采访了 Java Champion、VMware 的 Spring 开发者布道师。VMware 的 Spring Framework 项目负责人Juergen Hoeller也回答了其中一个问题。
InfoQ:作为一名 Spring 开发者布道师,你会发表演讲、编写代码、发表文章和书籍,并运营着一个播客。那么你的一天是怎么过的?
InfoQ:Spring 下有很多项目。VMware 必须让 Spring 用户了解所有相关的东西。VMware 如何知道 Spring 用户不了解哪些东西,从而可以教会他们?
InfoQ:Java 遗留应用程序通常使用较老版本的 Java 和框架。微服务架构让开发人员可以以较低的风险引入新的技术栈。你是否认为这是 Java 展示新特性和新版本的好机会?或者这更像是一种对 Java 的威胁,因为开发人员可以尝试 Java 的竞争对手,如.NET、Go、JavaScript 或 Python?
InfoQ:Spring 5 增加了对 Kotlin 的显式支持。你估计现在有多少百分比的 Spring 开发使用的是 Kotlin?
InfoQ:Scala 从来没有获得 Spring 这种显式的支持。你认为这是为什么?
InfoQ:Spring 5 也加入了反应式应用程序。现在你是反应式应用程序的支持者,甚至还为此写了一本书。是什么让反应式应用程序对你如此有这么大的吸引力?
InfoQ:反应式开发最适合解决哪些问题或最适合用于构建哪种应用程序?
InfoQ:哪些场景不适合使用反应式开发?
InfoQ:人们对反应式开发常见的抱怨是认知负荷的增加和调试难度的增加。他们抱怨的这些问题在 Spring Framework 6 和 Spring Boot 3 中也会有吗?
InfoQ:工具支持(例如 IDE 和构建工具)对于框架的成功来说有多重要?至少,有经验的用户通常会绕过向导和实用工具,直接修改配置文件和代码。
InfoQ:自 2010 年以来,这是第一次 Spring Framework 的更新不是在上一次重大发布一年之后,而是两年之后(5.3 版本在 2020 年发布)。因此,Spring Framework 6 似乎有两年的开发时间而不是一年。是什么导致花了这么长时间?
InfoQ:正如去年宣布的那样,Spring Framework 6.0 和 6.1 的免费支持时间将 更短 。与 Spring 5.2 的 27 个月相比,两者都下降了 20%(降至 21.5 个月)。相比之下,Spring Boot 3.0 的免费支持期限仍然为一年。这是为什么?
InfoQ:Spring Boot 3 支持 GraalVM Native Image 的 AOT 编译器。这样可以获得启动速度更快、使用更少内存、容器镜像更小且更安全的原生 Java 应用程序。这在云计算的哪些领域会让 Java 与 Go 等竞争对手处于更平等的地位?
InfoQ:原生 Java 在云计算的哪些领域不会起到很大作用?
InfoQ:原生 Java 的缺点是构建管道更慢、更复杂、工具支持更少、可观察性降低。构建管道的缺点似乎不可避免——AOT 编译需要更长的时间,不同的操作系统需要不同的可执行文件。但是,你认为从中期来看,与动态 Java 相比,原生 Java 的工具支持和可观察性会是怎样的?
InfoQ:说到可观测性,这是 Spring 6 的另一个主要功能。它包含了日志记录、指标和跟踪,并是基于 Micrometer 的。Java 已经有许多可观测性选项,为什么要在 Spring 中再加入一个?而且为什么是现在呢?
InfoQ:除了直接读取数据文件之外,该如何查看和分析 Spring 6 和 Spring Boot 3 的可观测性数据?
InfoQ:Spring Boot 3 在发布时并 不会为所有的项目和库提供全面的原生Java和可观测性支持 。那么我如何知道我的 Spring Boot 3 应用程序是否可以支持原生 Java 并提供完整的可观察性数据?
InfoQ:Java 即将推出的哪项功能最令你感到兴奋?
InfoQ:如果你能对 Java 做出一个改变,你希望是什么?
val name = "Karen" // 一个常规的String类型变量
val myLambda: (String) -> Int = { name -> name.length } // 一个以字符串为参数并返回整数的lambda
复制代码
var name = "Karen";
var myLambda = new Function<String, Integer>() {
public Integer apply(String s) {
return s.length();
复制代码
var name = "Karen";
Function<String, Integer> myLambda = s -> s.length();
复制代码
InfoQ:你希望 Spring 或 Spring Boot 做出一个什么样的改变?
嘉宾简介:
(推特账号 @starbuxman)是 2010 年以来的第一位 Spring 开发者布道师。Josh 是 Java Champion,著有 6 本书(包括 O’Reilly 的《云原生 Java:使用 Spring Boot、Spring Cloud 和 Cloud Foundry 设计弹性系统》和《Reactive Spring》),录制过众多很受欢迎的培训视频(包括与 Spring Boot 联合创始人 Phil Webb 合作的《使用 Spring Boot 构建微服务》),他还是一名开源贡献者(Spring Boot、Spring Integration、Spring Cloud、Activiti 和 Vaadin 等)、一位播客和 YouTube 博主。
Karsten Silz 在欧洲和美国做了 23 年的全栈 Java 开发者(Spring Boot、Angular、Flutter)。2004 年,他在美国联合创办了一家软件产品初创公司。Karsten 领导了 13 年的产品开发,并在公司成功销售后离开。自 2003 年以来,他一直担任承包商。2020 年,他作为首席技术官在英国联合创办了 SaaS 初创企业“Your Home in Good Hands”。
原文链接 :
相关阅读:
Java近期新闻:Spring Framework 6、JCP选举、Valhalla项目、OpenJDK更新
Spring Boot 3将于2022年11月发布,延迟了对Java模块系统的支持
Spring Boot Migrator简介