Javalin 6 im Überblick: Modernes Web-Framework für Java und Kotlin

Das Update des Java- und Kotlin-Web-Frameworks bringt ein flexibles Routing-System sowie umfassende Konfigurationsoptionen für Webanwendungen.

In Pocket speichern vorlesen Druckansicht 8 Kommentare lesen

(Bild: Shutterstock)

Lesezeit: 2 Min.

Mit Javalin 6 ist eine neue Version des Java- und Kotlin-Web-Frameworks erschienen, die sich laut Ankündigungsbeitrag auf Einfachheit und die Interoperabilität zwischen den beiden Programmiersprachen Java und Kotlin konzentriert. Die neue Major Version baut auf dem Jetty-Webserver auf und bietet eine dünnere Schicht für Webanwendungen. Das Hauptziel des Updates ist gemäß Blogbeitrag, leichtgewichtig zu sein und die Entwicklerproduktivität zu fördern.

Die aktualisierte Version enthält ein flexibles Routing-System, um Routen direkt auf der Javalin-Instanz (via app) oder über das Konfigurationsobjekt config.router zu definieren. Bei kleinen Anwendungen reicht die Verwendung der Instanz aus, während für größere Anwendungen die Nutzung des config.router empfohlen wird, wie das folgende Java-Codebeispiel aus dem Ankündigungsbeitrag zeigt:

// app object
var app = Javalin.create(/*config*/)
    .get("/", ctx -> ctx.result("Hello World"))
    .start(7070);

// config.router object
var app = Javalin.create(config -> {
    config.router.mount(router -> { // access to router instance
        router.get("/", ctx -> ctx.result("Hello World"));
    });
    config.router.apiBuilder(() -> { // sets a static variable scoped to the lambda
        path("users", () -> { // statically imported to improve readability
            get(UserController::getAll);
            post(UserController::create);
            path(":user-id", () -> {
                get(UserController::getOne);
                patch(UserController::update);
                delete(UserController::delete);
            });
        });
    });
}).start(7070);

Darüber hinaus bietet das Framework erweiterte Konfigurationsoptionen für den Webserver Jetty sowie Integrationen für WebSockets, Server-Sent Events, OpenAPI und SSL.

Zu den wichtigsten Änderungen seit Javalin 5 gehören die Neugestaltung des Plugin-Systems, die Überarbeitung der Jetty-Konfiguration und die Option zur Verwendung von Virtual Threads. Entwickler werden ermutigt, den Migration Guide zu befolgen, um auf Javalin 6 zu aktualisieren.

Darüber hinaus wurde der AccessManager entfernt, was bedeutet, dass Entwickler alternative Methoden zur Steuerung des Zugriffs auf Endpunkte verwenden müssen. Virtual Threads sind jetzt optional, was bedeutet, dass Entwicklerinnen und Entwickler sie aktivieren müssen, wenn sie zum Einsatz kommen sollen.

Weitere Informationen zu Javalin 6 bietet der Beitrag auf Javalin.io. Interessierte können zudem über das GitHub-Repository oder einen Discord-Channel am Projekt teilhaben. Das Entwicklerteam empfiehlt, für Neuigkeiten und Updates dem Team auf X (vormals Twitter) zu folgen.

(mdo)