成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring Boot 3.0 正式發布,這份升級指南必須收藏

開發 架構
Spring Boot3.0下依賴組件的版本要求也不盡相同,比如Spring Boot Kafka Starter可能對Kafka有什么要求,這要求你進行充分評估。Spring Cloud體系應該在對應的Spring Boot 3.0體系發布后進行升級。

Spring Boot 3.0 現已正式發布,它包含了 12 個月以來 151 個開發者的 5700 多次代碼提交。這是自 4.5 年前發布 2.0 以來,Spring Boot 的第一次重大修訂。

它也是第一個支持 Spring Framework 6.0 和 GraalVM 的 Spring Boot GA 版本,同時也是第一個基于Java 17的Spring Boot版本,以Jakarta EE 9為基準并支持Jakarta EE 10。同時借助于GraalVM支持了AOT和Native Image。

3.0升級指南

如果你想嘗試Spring Boot 3.0,不妨參考胖哥精心準備的升級指南。

升級JDK

首先要升級你的JDK到JDK17,如果你要使用Native Image特性,要使用GraalVM 22.3以上和 Native Build Tools Plugin 0.9.17 或更高的版本。

平滑升級

這里不建議直接從低于Spring Boot 2.7的版本直接升級到Spring Boot 3.0。不然新特性和API變更太多,就需要你修改大量的配置,升級路徑會過于陡峭。建議通過小版本號分階段升級到2.4、2.6、2.7,最后再到3.0。

依賴評估

Spring Boot3.0下依賴組件的版本要求也不盡相同,比如Spring Boot Kafka Starter可能對Kafka有什么要求,這要求你進行充分評估。Spring Cloud體系應該在對應的Spring Boot 3.0體系發布后進行升級。

升級到Spring Boot 3

一旦上面的工作準備完畢,你就可以開始嘗試升級到Spring Boot 3.0了。

配置屬性兼容

在Spring Boot 3.0中,一些配置屬性被重新命名/刪除了,開發人員需要相應地更新他們的application.properties?或者application.yml?。為了幫助你做到這一點,Spring Boot 3.0提供了一個spring-boot-properties-migrator?模塊。一旦作為依賴關系添加到你的項目中,它不僅會在啟動時分析你的應用程序的環境并打印診斷結果,而且還會在運行時為你臨時遷移屬性。把下面這個加入pom.xml以幫助你升級兼容配置屬性:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>

完成遷移之后,務必要移除spring-boot-properties-migrator依賴。

Jakarta EE

由于Java EE已經變更為Jakarta EE,包名以 javax?開頭的需要相應地變更為jakarta。這里建議通過Intellij IDEA 2021.2提供的內置功能批量處理即可:

圖片

當然你也可以手動去變更包名。

升級的關鍵變更

Spring Boot 3.0有一些關鍵改變,這些改變將與大多數應用程序有關。所以開發者要仔細閱讀這些變更。

圖片Banner不再支持

現在Spring Boot 3.0自定義Banner只支持文本類型(banner.txt),不再支持圖片類型。

日志日期格式變更

Logback和Log4j2的日志消息的日期和時間部分的默認格式已經改變,以符合ISO-8601標準。新的默認格式yyyy-MM-dd'T'HH:mm:ss.SSSXXX?使用T?來分隔日期和時間,而不是空格字符,并在最后添加時區偏移。LOG_DATEFORMAT_PATTERN?環境變量或logging.pattern.dateformat?屬性可以用來恢復以前的默認值yyyy-MM-dd HH:mm:ss.SSS。

ConstructingBinding注解

配置屬性類注解@ConfigurationProperties?默認情況下不再需要使用@ConstructorBinding來標記構造,你應該從配置類上移除它,除非該配置類多個構造函數來明確配置屬性綁定。

YamlJsonParser被移除

因為SnakeYAML的JSON?解析與其他解析器的實現不一致。如果你直接使用YamlJsonParser?,請遷移到其他JsonParser實現中。

自動配置文件變更

Spring Boot 2.7引入了一個新的文件:

META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

用于注冊自動配置,同時保持與 spring.factories? 中注冊的向后兼容。Spring Boot 3.0發布后,spring.factories?已經被移除,只能通過imports文件來注冊自動配置。

Web應用變更

路徑匹配

現在Spring MVC和Spring Webflux 的路徑匹配規則已經做了調整,默認情況下尾部斜杠/的匹配機制將和以前不同:

  • 3.0以前/foo/bar?等同于/foo/bar/
  • 3.0以后/foo/bar?不同于/foo/bar/

棄用配置 server.max-http-header-size

server.max-http-header-size?已經被棄用,現在用server.max-http-request-header-size?替代 ,并且現在該屬性只能來配置請求頭的大小,不再限制某些Web容器的響應頭大小,如果需要限制響應頭大小請通過自定義WebServerFactoryCustomizer來實現。

優雅停機階段變更

優雅停機由SmartLifecycle?實現,在SmartLifecycle.DEFAULT_PHASE - 2048?階段開始,Web服務器在SmartLifecycle.DEFAULT_PHASE - 1024階段停止。任何參與優雅關機的SmartLifecycle實現都應該被相應地更新。

Jetty

由于Jetty目前還不支持Servlet 6.0,使用Jetty的開發者需要通過降低Jakarta Servlet的版本為5.0。

數據訪問相關的變更

spring.data?前綴已被保留給Spring Data項目,如果你使用了Spring Data項目的子項目,application.yaml?中相關的配置屬性就需要響應的變更。例如 spring.redis?現在需要修改為spring.data.redis。

數據訪問相關的組件現在都使用了比較新的版本:

  • Flyway更新到 9.0
  • Hibernate 更新到 6.1
  • R2DBC 更新到 1.0

Mongodb

另外 Flapdoodle 嵌入式 MongoDB 的自動配置被移除,開發者有需要的話需要自行引入。

Elasticsearch

Elasticsearch的Rest客戶端采用了新的API實現,舊的自動配置和Spring Data Elasticsearch中舊的客戶端API已經被移除。

Spring Security

相關的變更,胖哥稍后會整理并獨立分享。

其它變更

可觀測性、度量跟蹤、Maven、Gradle也都有不同程度的變更,有需要可以查看官方的Spring-Boot-3.0-Migration-Guide 。

記得收藏這一篇,后續胖哥會深入Spring 6.0和Spring Boot 3.0的細節部分。

責任編輯:武曉燕 來源: 碼農小胖哥
相關推薦

2009-12-17 10:25:39

Spring 3.0

2025-02-26 00:36:07

Spring3.0版本GraalVM

2018-05-30 14:56:24

Spring輕量化Java 8

2018-06-20 15:42:09

2021-12-13 08:15:01

SpringSpring Boot開發

2012-02-16 13:24:28

2011-09-20 09:30:37

Qomo

2009-07-08 09:03:24

Ext JS3.0

2009-09-18 12:27:51

2019-05-17 15:26:06

Spring BootSpring BootJava

2009-12-02 11:05:26

Spring 3.0

2009-03-19 12:48:31

2009-07-06 10:38:56

Wix 3.0

2010-08-30 09:59:29

Ruby On Rai

2017-03-07 12:42:44

騫云科技

2011-07-04 10:10:36

webOS 3.0TouchPad惠普

2015-02-05 09:52:14

MongoDB

2022-11-28 10:24:10

Spring更新JVM

2025-04-29 00:04:00

2011-07-22 16:21:33

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中国毛片免费 | 国产精品日韩一区二区 | 爱爱视频日本 | 精品久久久久久亚洲精品 | 一区天堂 | 久久久久久久久久久成人 | 国产一级视频 | 97人人草 | 欧美电影免费观看高清 | 久久久久久久久久久国产 | 欧美精品国产精品 | 精品国产91 | 久久久69 | 欧美激情在线播放 | 天天插天天狠天天透 | 精品一区二区三区91 | 欧美亚洲激情 | 岛国av一区二区三区 | 成人h动漫精品一区二区器材 | 色伊人久久 | 99re6在线视频精品免费 | 99热热精品 | 黄色操视频| 久久精品福利视频 | 在线观看日韩av | 美日韩一区二区 | 久久久精选 | 中文字幕 在线观看 | 91久久国产综合久久 | 日韩欧美在线观看 | 国产成人免费一区二区60岁 | 一二三四在线视频观看社区 | 国产精品自拍视频网站 | 一片毛片 | yeyeav| 中文字幕一页二页 | 一区在线观看 | 国产成人一区二 | 久久国产精品一区二区三区 | 精品少妇一区二区三区日产乱码 | 高清黄色网址 |