© Excellent backgrounds/Shutterstock.com
Erfahrungen mit Thymeleaf als Frontend-Technologie

Web-Apps würzen mit Thymeleaf


Für kleine und mittelgroße Projekte ist es oft nicht sinnvoll, auf die Mächtigkeit und damit einhergehende Komplexität eines mit allen Funktionen ausgestatteten Anwendungsservers zu setzen. Vielmehr versprechen klare, leichtgewichtige Architekturen einen entscheidenden Vorteil in Bezug auf Produktivität, Wartbarkeit und Skalierbarkeit. Leichte Küche ist gefragt, auch in Bezug auf die Frontend-Technologie. Template-Engines haben hierfür den passenden Ansatz mit der Aussicht, ohne umständliche Kompilierung in Servlets und ohne Managed Beans auszukommen. Thymeleaf ist so eine Template-Engine, die verspricht, es mit dem Funktionsumfang zum Beispiel von JavaServer Pages (JSP) aufnehmen zu können und dabei performant, erweiterbar und einfach integrierbar zu sein.

Der folgende Beitrag stellt Thymeleaf als Template-­Engine und die Erfahrungen im Rahmen eines Pro­jekt­einsatzes bei der adesso AG vor, betrachtet Kernfunktionalitäten und Fallstricke sowie die Integration in einen Spring-basierten Technologiestack.

Die Bühne für den ersten richtigen Auftritt von Thyme­leaf [1] bei adesso war ein kleineres Projekt, das es zur Aufgabe hatte, mit einem kleinen Team in wenigen Wochen ein Web-Frontend für eine REST-basierte Kunden- und Produktverwaltung zu implementieren. Zum Einsatz kommen sollten Spring MVC und Spring Security, als Laufzeitumgebung war ein Tomcat vorgesehen. Allein beim Einsatz von JSP als Frontend-Technologie gab es Bedenken. Da JSP nahezu uneingeschränkt die Vermischung von Programmcode und Darstellung erlauben, führt dies erfahrungsgemäß früher oder später zu einem Wartungsproblem. „Spaghetticode“ war das Stichwort. Ein Kollege brachte schließlich Thymeleaf ins Spiel, ohne selbst über nennenswerte Erfahrungen zu verfügen. Nach einer kurzen Evaluationsphase stand fest: Thymeleaf sollte seine Chance als Würze in unserer leichtgewichtigen Web-App bekommen.

Minimalinvasiv

Template-Engines arbeiten grundsätzlich anders als zum Beispiel JSP. Während die Kombination von Markup- und Java-Code einer JSP zu einem Servlet kompiliert wird, nutzt Thymeleaf eine eigene, effiziente und – nach eigenen Angaben – sehr performante DOM-Implementierung, um das eingelesene Template als DOM-Tree in den Speicher zu laden und mit dynamischen Inhalten zu füllen. Dies geschieht anhand von besonderen, zusätzlichen Attributen in den HTML-Tags. Eigene Tags oder gar „Inline“-Code gibt es nicht. Damit sind die Möglichkeiten, Programmcode und Logik in die Darstellung einzubringen, ...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang