Das gesamte Spring-Team und viele in unserer Community von Mitwirkenden bereiten sich jetzt auf die nächste Spring-Generation vor. Wir planen die Veröffentlichung von Spring Boot 3.0 im November 2022. Diese nächste große Überarbeitung basiert auf Spring Framework 6.0 und erfordert Java 17 oder höher. Es wird auch die erste Version von Spring Boot sein, die Jakarta EE 9-APIs ( jakarta.*) anstelle von EE 8 ( javax.*) verwendet.
Die nächsten sechs Monate bieten eine ideale Gelegenheit, Ihre eigenen Projekte auf dieses Major Release vorzubereiten. In diesem Blogbeitrag behandeln wir einige der Dinge, die Sie heute tun können , um eine zukünftige Migration so einfach wie möglich zu gestalten.
Wir empfehlen Ihnen dringend, Ihr JDK nach Möglichkeit noch heute zu aktualisieren.
Upgrade-Anweisungen finden Sie immer in unseren Versionshinweisen. Wenn Sie beispielsweise von Spring Boot 2.6 auf Spring Boot 2.7 aktualisieren, können Sie diesem Abschnitt folgen .
Wenn Sie von Spring Boot 2.5 oder früher aktualisieren, empfehlen wir nicht, Releases zu überspringen. Es ist oft einfacher, schrittweise zu aktualisieren (z. B. 2.5 → 2.6 → 2.7), als zu versuchen, direkt von 2.5 → 2.7 zu aktualisieren.
Spring Boot 3.0 entfernt den gesamten veralteten Code, daher empfehlen wir Ihnen, zu überprüfen, ob Ihr vorhandener Code auf veralteten Methoden beruht. Es ist erwägenswert, die -WerrorJava-Compiler-Option zu verwenden, um Ihren Build fehlschlagen zu lassen, wenn Verfallswarnungen gemeldet werden.
Die Legacy-Verarbeitungsunterstützung wird in Spring Boot 3.0 nicht verfügbar sein, daher sollten Sie überprüfen, ob Ihr Projekt nicht festgelegt ist spring.config.use-legacy-processing.
Einige Anwendungen haben möglicherweise manuell zur AntPathMatcherImplementierung zurückgeschaltet, indem Sie die spring.mvc.pathmatch.matching-strategyEigenschaft festgelegt haben. Obwohl dies in Spring Boot 3.0 weiterhin funktioniert, empfehlen wir, PathPatternParserwenn möglich, die zu verwenden, da sie eine bessere Leistung bietet.
Im Allgemeinen ist es nicht möglich, Java EE- und Jakarta EE-APIs im selben Projekt zu mischen. Sie müssen sicherstellen, dass Ihr eigener Code sowie alle Bibliotheken von Drittanbietern jakarta.*Paketimporte verwenden.
Die gute Nachricht ist, dass die meisten gut gewarteten Bibliotheken Jakarta EE 9-kompatible Varianten produzieren. Hibernate, Thymeleaf, Tomcat, Jetty und Undertow haben dies beispielsweise bereits getan.
Wir empfehlen Ihnen, sich etwas Zeit zu nehmen, um zu überprüfen, ob alle von Ihnen verwendeten Bibliotheken von Drittanbietern in Jakarta EE integriert sind, und überprüfen Sie, ob sie EE 9-kompatible Varianten haben. Die häufigsten Probleme, die wir gefunden haben, treten bei Projekten auf, die Servlet-APIs importieren.