点击上方“Java精选”,选择“设为星标”

别问别人为什么,多问自己凭什么!

下方有惊喜留言必回,有问必答!

每天 08:15 更新文章,每天进步一点点...

2d54b5ff111d3bbe084c5179f2c5f15d.png

Spring官方于2022年1月20日发布Spring Boot 3.0.0-M1版本,预示开启了Spring Boot 3.0的里程碑,相信这是通往下一代Spring框架的激动人心的旅程。

接下来一起来看看Spring Boot 3.0.0-M1 版本都有哪些重大变化。

Spring Boot 2.x 弃用

Spring Boot 2.x中不推荐使用的类、方法和属性已在Spring Boot 3.0.0-M1版本中删除,注意在升级之前有没有调用过时的方法。

最低要求变更

Java基线从Java 8提升到Java 17。

Spring Boot 3.0需要Java 17和Spring Framework 6作为最低版本。

使用Gradle构建的应用程序需要Gradle 7.3或更高版本。

目前已删除对Jersey的支持,因为它尚不支持Spring Framework 6。

升级到Jakarta EE 9

Spring Boot 3.0开始,如果使用Spring Boot 3.0的现有应用程序,需要注意Java EE API已迁移到其他等效的Jakarta EE上。

859a1fb9f9a1d8b59029b441234ed577.png

对于大多数的开发人员来说,这将意味着需要将任何javax导入替换为jakarta,例如javax.servlet.Filter将替换为jakarta.servlet.Filter。

但是还有一些依赖Java EE API的第三方库,目前还没有得到很好的支持,所以在Spring Boot 3.0中暂时会移除这类组件的支持。

由于并不是所有Spring Boot 2.x功能都可用于第一个里程碑。Spring官方计划等第三方库发布jakarta兼容库之后重新引入功能。

Spring Boot依赖于Jakarta EE规范的地方,Spring Boot 3.0已升级到Jakarta EE 9中包含的版本。例如,Spring Boot 3.0使用Servlet 5.0和JPA 3.0规范。

为了区分支持Jakarta EE 8的模块和支持Jakarta EE 9的模块,一些项目发布了具有不同后缀ID的Jakarta EE 9兼容模块。例如,Undertow使用-jakartaee9后缀,而Hibernate使用-jakarta。

一般来说,Spring Boot的启动模块会自动处理这种更改。如果是直接声明对第三方模块的依赖项,则可能需要更新依赖项声明以适应使用与EE 9兼容的后缀ID。

作为此次升级到Jakarta EE 9的一部分,在无法获得第三方库的支持情况下,已经减少或删除了对某些依赖项的支持。

但是随着生态系统逐渐适应Jakarta EE 9中的新包名称,Spring 官方会重新引入支持。

另外,推荐下 Spring boot 的实战开源项目:
https://gitee.com/yoodb/jing-xuan

目前已删除对以下内容的支持:

EhCache 3
H2’s web console
Hibernate’s metrics
Infinispan
Jolokia
Pooled JMS
REST Assured

部分支持删除

Spring Boot 3.0 中删除了对以下依赖项的支持:

Apache ActiveMQ
Atomikos
EhCache 2
Hazelcast 3
JSON-B

还删除Apache Johnzon的依赖管理,取而代之的是Eclipse Yasson。

注意的是Apache Johnzon的Jakarta EE 9兼容版本可以与Spring Boot 3一起使用,但是必须在依赖项声明中指定一个版本。

Spring Boot 3.0.0-M1迁移到Spring项目的依赖版本:

Micrometer 2.0.0-M1
Spring AMQP 3.0.0-M1
Spring Batch 5.0.0-M1
Spring Data 2022.0.0-M1
Spring Framework 6.0.0-M2
Spring Integration 6.0.0-M1
Spring HATEOAS 2.0.0-M1
Spring Kafka 3.0.0-M1
Spring LDAP 3.0.0-M1
Spring REST Docs 3.0.0-M1
Spring Security 6.0.0-M1
Spring Session 2022.0.0-M1
Spring Web Services 4.0.0-M1

许多第三方依赖项也已更新,其中一些值得注意的是:

Artemis 2.20.0
Hazelcast 5.0
Hibernate Validator 7.0
Jakarta Activation 2.0
Jakarta Annotation 2.0
Jakarta JMS 3.0
Jakarta JSON 2.0
Jakarta JSON Bind 3.0
Jakarta Mail 2.0
Jakarta Persistence 3.0
Jakarta Servlet 5.0
Jakarta Servlet JSP JSTL 2.0
Jakarta Transaction 2.0
Jakarta Validation 3.0
Jakarta WebSocket 2.0
Jakarta WS RS 3.0
Jakarta XML Bind 3.0
Jakarta XML Soap 2.0
Jetty 11
jOOQ 3.16
Tomcat 10

除了上面列出的更改之外,还有一些小的调整和改进,包括:

1. 对Java的SecurityManager支持,在JDK中被弃用后,Spring Boot 3.0.0-M1中已被删除;

2. 对Spring Framework的CommonsMultipartResolver的支持,在Spring Framework 6中删除后,Spring Boot 3.0.0-M1中也已经被删除。

Spring官方消息,计划每两个月发布一个新的Spring Boot 3.0里程碑,在今年3月24日发布Spring Boot 3.0.0-M2,计划在11月下旬发布GA版本。

如果感兴趣或者想尝试这个新版本的朋友,可以从start.spring.io生成一个项目,注意选择Java 17。有什么想说的欢迎下方留言!!

参考资料:

https://spring.io/blog/2022/01/20/spring-boot-3-0-0-m1-is-now-available

公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!

------ THE END ------

49d8b5e34f52e8026113034ac1dabbe0.png精品资料,超赞福利!5ee2da06ef958794e703b7918599b38a.png

>Java精选面试题<
3000+道BAT大厂面试题在线刷,最新、最全Java面试题!

89c57dde7585a686d75d3e7b1b7f6658.png

ede53bb1f16c29fecfd9387b2221a86c.png

期往精选  点击标题可跳转

2021 年编程语言排行榜出炉!有点“小”出乎意外!

Spring Boot + flowable 快速实现工作流,如此 so easy!

资深开发竟然不清楚 int(1) 和 int(10) 的区别

Spring Boot 快速开发利器:Spring Boot CLI

40 岁失业高级码农自曝:阿里 P9,攒了 1.5亿...

37 岁程序员被裁,120 天没找到工作,无奈去小公司,结果懵了...

还在用策略模式解决 if-else?Map+函数式接口方法才是 YYDS!

Eclipse 跌落“神坛”,这款 IDE 后来居上!

求你别在自己瞎写工具类了,Spring 自带的这些它不香麽?

cb8e8e786dd6465df758eefec0a6569b.png技术交流群!f445ce3b87c70cf84d11a6e14c1fb60f.png

最近有很多人问,有没有读者&异性交流群,你懂的!想知道如何加入。加入方式很简单,有兴趣的同学,只需要点击下方卡片,回复“加群”,即可免费加入交流群!

文章有帮助的话,在看,转发吧!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐