Spezifikation / ProfilProfile11
Jakarta EE Web Profile
Das Web Profile bündelt die Spezifikationen, die für klassische Webanwendungen und REST-orientierte Backend-Systeme typischerweise benötigt werden.
Einordnung
Spezifikation / Profil
Enterprise-Rolle
Es ist oft die richtige Wahl für Enterprise-Websysteme mit Servlet, REST, CDI, Persistence, Transactions, Security und Validierung, aber ohne vollen Plattformballast.
Fachliches Verständnis
Es ist oft die richtige Wahl für Enterprise-Websysteme mit Servlet, REST, CDI, Persistence, Transactions, Security und Validierung, aber ohne vollen Plattformballast. In der Praxis ist wichtig, die Spezifikation nicht mit der konkreten Runtime zu verwechseln. Der Standard beschreibt die portablen APIs, die Implementierung entscheidet über Konfiguration, Performance, Betrieb und Support.
Kernkonzepte
- Servlet und REST bilden HTTP-Zugänge.
- CDI steuert Dependency Injection und Scopes.
- Persistence und Transactions bilden relationale Datenzugriffe ab.
- Faces, Pages, EL und JSTL decken serverseitige UI ab.
- Security und Validation ergänzen Querschnittsthemen.
Typische Einsatzfälle
- REST API mit Datenbank und Security.
- Serverseitige Webanwendung mit Faces oder Pages.
- Migration alter WAR-Anwendungen.
Technisches Beispiel
xml
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>11.0.0</version>
<scope>provided</scope>
</dependency>
<!-- provided: Die Runtime liefert die Jakarta APIs zur Laufzeit. -->
Architekturregel: Jakarta APIs gehören an Systemgrenzen und Infrastrukturpunkte. Fachentscheidungen bleiben in Application Services und Domain-Modellen testbar und möglichst unabhängig vom Container.
Enterprise-Fallen
- Web Profile mit reinem Servlet-Container verwechseln.
- JPA Entities direkt als REST API veröffentlichen.
- Session Scope unkontrolliert in Cluster-Umgebungen nutzen.
Legacy-Modernisierung
Viele alte WAR-Module lassen sich auf Web Profile modernisieren, bevor man über Microservices entscheidet.
Vertiefung: Review-Fragen für Senior-Entwickler
- Welche Spezifikation ist hier wirklich nötig?
- Welche Runtime-Funktion wird genutzt und ist sie portabel?
- Wo liegt die Transaktionsgrenze?
- Sind API-Verträge, DTOs und Domain-Modelle getrennt?
- Ist der Code ohne Application Server testbar?