Spezifikation / Library-APICore3.0

Jakarta Annotations

Gemeinsame semantische Annotationen wie @PostConstruct, @PreDestroy, @Resource oder @Priority.

Einordnung
Spezifikation / Library-API
Enterprise-Rolle
Annotations sind Klebstoff zwischen Spezifikationen und Runtime.
Diagramm zu Jakarta Annotations

Fachliches Verständnis

Annotations sind Klebstoff zwischen Spezifikationen und Runtime. 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

  • Lifecycle Callback Annotationen.
  • Resource Injection.
  • Priority für geordnete Komponenten.
  • Security/Generated-Kontext je nach Spezifikation.

Typische Einsatzfälle

  • Lifecycle initialisieren.
  • Ressourcen markieren.
  • Interceptors ordnen.

Technisches Beispiel

java
@ApplicationScoped
public class ExchangeRateCache {
    private Map<String, BigDecimal> rates;

    @PostConstruct
    void init() {
        rates = new ConcurrentHashMap<>();
    }

    @PreDestroy
    void shutdown() {
        rates.clear();
    }
}
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

  • Zu viel Arbeit in @PostConstruct.
  • Serverressourcen statt expliziter Konfiguration verstecken.

Legacy-Modernisierung

Alte XML-Konfiguration kann teilweise durch Annotationen ersetzt werden, aber Governance bleibt wichtig.

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?