Tutorials  /  Java

Spring 5: Neuerungen und Funktionen im Detail

Ccentron Redaktion · Februar 2024 ·4 Min. Lesezeit ·Java, Tutorial

Spring 5 wurde Ende 2017 veröffentlicht. Spring 5 bringt ein massives Update für das Spring-Framework. Spring 4 wurde 2013 veröffentlicht, daher erwartete jeder eine große Überarbeitung des Frameworks. Ich bin sehr froh, die neuen Funktionen im Spring-Framework zu sehen.

Funktionen von Spring 5

Die Funktionen von Spring 5 können grob in folgende Kategorien unterteilt werden:

VM

Passende Infrastruktur bei centron

Java-Anwendungen im Dauerbetrieb: ccloud³ VMs ab 3,12 € im Monat mit vollem Root-Zugriff, stundengenau abgerechnet. Cloud Server mieten →

Java-Baseline-Unterstützung

  • Spring 5 läuft auf Java 8, sodass Spring-Code Lambda-Ausdrücke nutzen kann, um die Lesbarkeit des Codes zu verbessern.
  • Spring 5 unterstützt auch Java 9, sodass wir unsere Anwendungen auch auf einer modulbasierten Architektur erstellen können.
  • Spring 5 unterstützt Java EE 7 und ist auch kompatibel mit Java EE 8. So können wir Servlet 4.0, Bean Validation 2.0, JPA 2.2 in unseren Anwendungen verwenden. Wir können auch deren ältere Versionen verwenden, d.h. Servlet 3.1, Bean Validation 1.1, JPA 2.1.
  • Bevorzugte Serverversionen für Spring 5-Anwendungen sind Tomcat 8.5+, Jetty 9.4+ und WildFly 10+.

Mir gefällt wirklich, dass Spring 5 versucht, mit den neuesten Versionen verschiedener Technologien Schritt zu halten.

Verbesserungen der Core-API

  • Non-null-API-Deklaration auf Paketebene. Nullable Argumente, Felder und Rückgabewerte sind explizit mit der @Nullable-Annotation annotiert.
  • Dateioperationen werden über NIO 2-Streams durchgeführt, d.h. kein FileInput/OutputStream. Dies ist eine großartige Verbesserung und Leistungssteigerung für dateibasierte Anwendungen.
  • Spring Framework 5.0 kommt mit seiner eigenen Commons Logging-Brücke; spring-jcl statt standard Commons Logging.
  • Unterstützung für die Bereitstellung von Spring-Komponenteninformationen über die Indexdatei „META-INF/spring.components“ anstelle von Klassenpfad-Scanning. Dies wird die Startzeit stark verbessern, wenn Sie ein großes Spring-Projekt und viele Spring-Komponenten haben. Es wird auch für Entwickler besser sein, da wir direkt in die angegebenen Dateien schauen können, um den Einstiegspunkt der Anwendung herauszufinden, anstatt durch alle Klassenpfad-Dateien zu suchen.

Verbesserungen von Spring Web MVC

  • Vollständige Unterstützung der Servlet 3.1-Signatur in Spring-bereitgestellten Filterimplementierungen.
  • Unterstützung für das Servlet 4.0 PushBuilder-Argument in Spring MVC-Controllermethoden.
  • MaxUploadSizeExceededException für Servlet 3.0-Multipart-Parsing auf gängigen Servern.
  • Einheitliche Unterstützung für gängige Medientypen durch die MediaTypeFactory-Delegation.
  • Datenbindung mit unveränderlichen Objekten unter Verwendung von Kotlin, Lombok, @ConstructorProperties.
  • Unterstützung für die JSON Binding API als Alternative zu Jackson und GSON.
  • Unterstützung für Reactor 3.1 Flux und Mono sowie RxJava 1.3 und 2.1 als Rückgabewerte von Spring MVC-Controllermethoden.
  • Unterstützung für ResponseStatusException als programmatische Alternative zu @ResponseStatus.

Spring WebFlux

Spring WebFlux ist das neue Modul, es ist eine Alternative zum spring-webmvc-Modul und basiert auf einem reaktiven Framework. Dieses Modul wird verwendet, um vollständig asynchrone und nicht blockierende Anwendungen basierend auf dem Event-Loop-Ausführungsmodell zu erstellen.

  • Reaktive Infrastruktur in spring-core wie Encoder und Decoder zum Kodieren und Dekodieren von Objektströmen.
  • @Controller-Stil, annotierungsbasiertes Programmiermodell, ähnlich wie bei Spring MVC, aber unterstützt in WebFlux, ausgeführt auf einem reaktiven Stack.
  • Neuer WebClient mit funktionaler und reaktiver API für HTTP-Aufrufe, vergleichbar mit dem RestTemplate, aber durch eine fließende API und auch hervorragend in nicht blockierenden und Streaming-Szenarien basierend auf der WebFlux-Infrastruktur.

Funktionale Programmierung mit Kotlin-Unterstützung

Spring 5 unterstützt jetzt auch die Kotlin-Programmierung. Dies ist ein großer Schritt in Richtung Unterstützung der funktionalen Programmierung, genau wie Java sich auch in Richtung funktionale Programmierung bewegt.

  • Unterstützung für Null-Safe API
  • Unterstützung für Kotlin-unveränderliche Klassen mit optionalen Parametern und Standardwerten.
  • Nutzung von Kotlin-reifizierten Typ-Parametern, um das explizite Angeben der Klasse zur Verwendung für Serialisierung/Deserialisierung in verschiedenen APIs wie RestTemplate oder WebFlux-APIs zu vermeiden.
  • Unterstützung für Kotlin autowired Konstruktor mit optionalen Parametern.
  • Kotlin Null-Sicherheitsunterstützung für @Autowired/@Inject und @RequestParam/@RequestHeader/etc. Annotationen.

Testverbesserungen

  • Unterstützung für JUnit 5
  • Unterstützung für parallele Testausführung im Spring TestContext Framework

Veraltete Unterstützung und entfernte Pakete

  • Entfernte Pakete beans.factory.access, jdbc.support.nativejdbc, mock.staticmock aus dem spring-aspects-Modul.
  • Entfernte Pakete web.view.tiles2 und orm.hibernate3/hibernate4 fallen weg. Das bedeutet, wenn Sie Spring 5 verwenden möchten, müssen Sie auch Hibernate 5 verwenden.
  • Eingestellte Unterstützung für alte Technologien Portlet, Velocity, JasperReports, XMLBeans, JDO, Guava. Wenn Sie eine davon verwenden, migrieren Sie entweder zu anderen Technologien oder bleiben Sie bei Spring 4.

Das ist alles für einen schnellen Überblick über die Funktionenund Neuerungen von Spring 5.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Java
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren