Java-Framework: Spring Native 0.11 verringert Startup-Zeiten dank AOT-Engine
Version 0.11 bringt eine neue AOT-Engine sowie nativen Support für Spring Boot 2.6 mit. Das Spring-Team äußert sich zudem zur aktuellen Log4j-Sicherheitslücke.
VMware hat Spring Native 0.11 veröffentlicht. Mit an Bord ist eine neue AOT-Engine (Ahead-of-Time), die in verschiedenen Bereichen Vorteile bieten soll – darunter verringerte Startup-Zeiten. Das Open-Source-Framework befindet sich weiterhin im Beta-Modus und soll dem Kompilieren von Spring-Anwendungen dienen, indem es den GraalVM-Compiler für native Images einsetzt.
Transformation und Geschwindigkeit
Die neue AOT-Engine in Spring Native 0.11 soll unter anderem eine Tiefenanalyse von Spring-Anwendungen zur Build-Zeit ermöglichen, um sie der für GraalVM nötigen Konfiguration entsprechend zu transformieren. Dadurch sollen weniger Bedingungen zur Laufzeit evaluiert und weniger Spring-Infrastruktur zur Laufzeit ausgeführt werden müssen. Die Transformation übernehmen Maven- und Gradle-Spring-AOT-Plug-ins, wie VMware grafisch darstellt:
Dank der neuen AOT-Engine sollen sich neben weiteren Vorteilen auch die Startup-Zeiten deutlich verringert haben. Das liegt darin begründet, dass sich die Verarbeitung teilweise von der Laufzeit zur Build-Zeit verschoben hat. Im Vergleich zum Vorgänger Spring Native 0.10 beträgt die Startup-Zeit zwischen 16 und 35 Prozent weniger. Am deutlichsten hat sich die Startup-Zeit bei webmcv-tomcat
verringert – von 65 auf 42 Millisekunden:
Spring Native 0.11 ist für den Einsatz mit GraalVM 21.3, Spring Boot 2.6 und Spring Cloud 2021.0 konzipiert.
Alle weiteren Informationen zu Spring Native 0.11 sind dem Spring-Blog sowie den Release Notes auf GitHub zu entnehmen.
Spring Boot und die Log4j-Zero-Day-Lücke
Die kürzlich bekannt gewordene Log4j-Zero-Day-Lücke macht auch vor Spring-Boot-Nutzerinnen und -Nutzern keinen Halt. Das Java-Framework zum Erstellen von Spring-Anwendungen ist allerdings laut dem Spring-Team nur unter bestimmten Umständen angreifbar: Nur diejenigen, die das standardmäßige Logging auf Log4j gesetzt haben, sollen von der Sicherheitslücke betroffen sein.
Die in spring-boot-starter-logging
enthaltenen JAR-Dateien log4j-to-slf4j
und log4j-api
sollen sich alleine nicht ausnutzen lassen, im Gegensatz zu vulnerablen Anwendungen, die log4j-core
und User-Input in Log-Messages verwenden.
Weitere Details und Gegenmaßnahmen beschreibt das Spring-Team in einem Blogeintrag.
(mai)