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 9Spring Boot 3.0开始,如果使用Spring Boot 3.0的现有应用程序,需要注意Java EE API已迁移到其他等效的Jakarta EE上。对于大多数的开发人员来说,这将意味着需要将任何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。有什么想说的欢迎下方留言!!

Spring 官宣发布 Spring Boot 3.0 第一个里程碑 M1,从 Java 8 提升到 Java 17!的更多相关文章

  1. Spring官宣网传大漏洞,并提供解决方案

    Spring沦陷了!这样的标题这几天是不是看腻了?然而,仔细看看都是拿着之前的几个毫不相干的CVE来大吹特吹.所以,昨天发了一篇关于最近网传的Spring大漏洞的文章,聊了聊这些让人迷惑的营销文.以及 ...

  2. 官宣 | Apache Flink 1.12.0 正式发布,流批一体真正统一运行!

    官宣 | Apache Flink 1.12.0 正式发布,流批一体真正统一运行! 原创 Apache 博客 [Flink 中文社区](javascript:void(0) 翻译 | 付典 Revie ...

  3. 从spring官网下载spring 架包

    1.找到spring官网地址:http://spring.io/ 2.点击projects 3.点击springframework 4.点击图片

  4. 如何从Spring官网下载Spring的jar包

    Spring官网:https://spring.io/ 进入官网点击PRODECTS 然后点击Spring Framework 进入下面的页面点击小猫图标: 之后再下面的页面持续向下滚动,找到下图我标 ...

  5. 怎么在spring官网上下载spring的jar包, 源代码和文档?

    现在 http://repo.spring.io/release/org/springframework/spring/第一种,简单粗暴直接 1 http://repo.springsource.or ...

  6. 最新spring官网(spring.io)下载方法

    这里介绍的是用于WEB开发的spring-frame框架的下载方法. 如果想下载其他的spring产品,直接进入http://projects.spring.io,选择自己要的即可.下载方法同下. 要 ...

  7. 奇技淫巧:在spring官网上下载历史版本的spring插件,springsource-tool-suite

    转自:https://blog.csdn.net/PacosonSWJTU/article/details/80959689 目前spring官网(http://spring.io/tools/sts ...

  8. 在spring官网上下载历史版本的spring插件,springsource-tool-suite

    目前spring官网(https://spring.io/tools3/sts/all)上可下载的spring插件只有: ECLIPSE ARCHIVE SIZE 4.9.0 springsource ...

  9. 官网下载Spring dist

    新版Spring官网下载Spring的dist可真是麻烦 跟着下面的贴图走吧,有些在网页的下面,需要打开相应页面后往下拉拉. 下载完后解压lib里面就是各种jar包了 真是麻烦啊,不好找,不过Spri ...

随机推荐

  1. Mybatis-Plus一键生成代码

    Mybatis-Plus一键生成代码 一.闲言碎语 闲来无事看了看了MP的官网看到一键生成的代码更新了! 整个Ui风格都变了,遂决定瞅一眼新的代码生成器 官网地址~~ 二.引入依赖 新的代码生成只有在 ...

  2. Linux(centos) 设置MySQL数据库不区分大小写

    1.修改配置文件 vim /etc/my.cnf 在[mysqld]节点下,加入一行: lower_case_table_names=1 2.重启数据库服务 service mysqld restar ...

  3. Qt5设置lineEdit正则表达式

    说明 本文演示Qt 版本: qt5.14 一个例子 下面的代码中演示 输入框只能输入 冒号.A-F.a-f,数字0~9,最长输入64个字符 /// 设置验证 auto le_set_check = [ ...

  4. The 2015 China Collegiate Programming Contest -ccpc-c题-The Battle of Chibi(hdu5542)(树状数组,离散化)

    当时比赛时超时了,那时没学过树状数组,也不知道啥叫离散化(貌似好像现在也不懂).百度百科--离散化,把无限空间中无限的个体映射到有限的空间中去,以此提高算法的时空效率. 这道题是dp题,离散化和树状数 ...

  5. Pikachu漏洞练习-SQL-inject(持续更新)

    本来在bup中repeater模式可以多次测试,但不知为何总是出错 这里把我们想查询的数据库和版本进行联合查询,放包,页面回显数据库名称和版本分别为pikachu,5.7.26 数据库版本大于5那么i ...

  6. 第二十六个知识点:描述NAF标量乘法算法

    第二十六个知识点:描述NAF标量乘法算法 NAF标量乘法算法是标量乘法算法的一种增强,该算法使用了非邻接形式(Non-Adjacent Form)表达,减少了算法的期望运行时间.下面是具体细节: 让\ ...

  7. MA8621带SD读卡的USB 2.0高速3端口HUB方案芯片|MA8621中文规格书|USB 2.0方案

    MA8621说明 MA8621是USB 2.0高速3端口集线器的高性能解决方案,带有SD卡控制器,完全符合通用串行总线规范2.0.控制器继承了先进的串行接口技术,当3个DS(下游)端口同时工作时,功耗 ...

  8. Java,JDK安装及环境配置

    jdk安装及环境配置 一.jdk安装 1.找到jdk安装包 2.安装jdk 3.安装jre 二.环境变量配置          1.JAVA_HOME JAVA_HOME C:\Program Fil ...

  9. HTML网页设计中 link 和 @import 的区别

    页面中使用CSS的方式主要有3种:行内添加定义style属性值,页面头部内嵌调用和外面链接调用,其中外面引用有两种:link和@import.外部引用CSS两种方式link和@import的方式分别是 ...

  10. js 盒子逐渐缓慢移动效果

    注释:可以用于盒子弹出,收回效果,比如:某东的产品详情页,侧边有购物车.优惠卷等,鼠标经过弹出效果 可以看这个网址使用案例:https://www.cnblogs.com/jq-growup/p/15 ...