Enterprise Anwendungen mit Jakarta EE
Die ›Jakarta EE‹ unterstützt die Entwicklung von mehrschichtigen, transaktionalen und verteilten Unternehmensanwendungen. Zum Aufbau wiederverwendbarer serverseitiger Komponenten dienen die ›Enterprise Java Beans‹ (EJB). Ein Applikationsserver stellt dafür eine Ablaufumgebung bereit und übernimmt zentrale Dienste wie Transaktionsmanagement, Sicherheitskontrolle, Ressourcenverwaltung, Nebenläufigkeit, Timer-Dienste, Messaging und Integration mit Persistenzlösungen. Das Seminar stellt Enterprise Java Beans als Bestandteil des Jakarta-EE-Stacks vor und zeigt, wie Geschäftslogik mit Session Beans, Message Driven Beans, Transaktionen, Security und JPA umgesetzt wird. Die Teilnehmer entwickeln komponentenbasierte Anwendungen, binden Datenbanken über ›Jakarta Persistence‹ ein, nutzen CDI und Ressourceninjektion und lernen Deployment, Testing und Best Practices für wartbare Enterprise-Anwendungen kennen.
Inhalte des Seminars
Einführung in Enterprise Java Beans
- Komponentenorientierung und mehrschichtige Architekturen
- Jakarta EE und EJB-Container
- Aufgaben von Enterprise Java Beans im Jakarta-EE-Stack
- Bean-Typen und ihre Einsatzgebiete
- Session Beans und Message Driven Beans
- Jakarta Persistence Spezifikation und Provider
- Konfiguration durch Annotationen und Deployment Deskriptoren
- Applikationsserver wie WildFly, Payara oder JBoss EAP
- Namensdienst über ›Java Naming and Directory Interface‹ (JNDI)
- Deployment und Paketierung von Enterprise-Anwendungen
Session Beans
- Stateless Session Bean,
@Stateless - Stateful Session Bean,
@Stateful - Singleton Session Bean,
@Singleton - Lokale und entfernte Business-Interfaces,
@Localund@Remote - Optionale Business-Interfaces
- Remote Clients
- Asynchrone Methoden
- Kalenderbasierte Timer
- Nebenläufigkeit und Zugriffsschutz bei Singleton Beans
Messaging mit Message Driven Beans
- Jakarta Messaging
- Queue, Topic, Publish, Subscribe
- Definition einer Message Driven Bean,
@MessageDriven - Topic- und Queue-basierte Kommunikation
@ActivationConfigProperty- Client-Seite mit Jakarta Messaging
- Transaktionales Messaging
- Fehlerbehandlung und Wiederzustellung
Injektion, CDI und Callbacks
- Das Prinzip ›Inversion of Control‹ (IoC) und ›Dependency Injection‹
- Contexts and Dependency Injection (CDI)
- EJB-Verweise,
@EJB - Ressourceninjektion,
@Resource DataSourceund weitere Serverressourcen- SessionContext und Zugriff auf Containerdienste
- Lebenszyklus der Beans
- Callback-Methoden
- Interceptors,
@Interceptor,InvocationContext - Timer,
@Timeout
Datenbankanbindung mit Jakarta Persistence
- Test-Datenbank
- Modellierung von Entitäten als einfache Java-Klassen
- Persistence Unit,
META-INF/persistence.xml - Entity Manager API
- Die Typen
Persistence,EntityManagerFactoryundEntityManager - Suchen von Entities,
find,getReference - Direkte Objekte und Proxys
persist,merge,remove,flush,refresh- FlushMode
- Autogenerierte Schlüssel,
@Idmit@GeneratedValue - In-Container- und Out-of-Container-Persistence
META-INF/persistence.xmlmitDataSource
Fortgeschrittene Mapping-Technologien
- Physisches Mapping mit Tabellen und Spalten
@Tableund@Column,@Lob,@Temporal,@Enumerated- Logisches Mapping
- Komponenten und eingebettete Objekte
- Named Queries
- Assoziationen, 1:1, 1:n, n:m
- Vererbung
- CascadeType und FetchType
- Optimistic Locking
- Jakarta Persistence Query Language (JPQL)
- Criteria API
SELECT,FROM, Einschränkungen durchWHERE- Gruppierungen durch
GROUP BY,HAVING - Joins und Fetch Joins
Entity Listener
- Entity Listener und Callback-Methoden
@PrePersist,@PostPersist,@PreUpdate,@PostLoad@EntityListeners
Transaktionen und Sicherheit
- ACID-Prinzip
- ›Jakarta Transactions‹ (JTA)
- Container Managed Transactions
- Bean Managed Transactions
- Transaktionsattribute,
@TransactionAttribute - Rollback-Verhalten und Exception Handling
- Deklarative Sicherheit
- Benutzer und Rollen
- Jakarta Security
- Rollenbasierte Zugriffskontrolle
- Programmierte Sicherheit
REST, Integration und Services
- RESTful Webservices mit Jakarta RESTful Web Services
- Ressourcenklassen und HTTP-Methoden
- JSON Binding und JSON Processing
- Client APIs
- Integration externer Dienste
- SOAP-Webservices als Legacy-Integration
- Schnittstellen zwischen EJB, CDI, JPA und REST
Testing, Deployment und Betrieb
- Lokale Entwicklung mit Applikationsservern
- Deployment auf WildFly, Payara oder JBoss EAP
- Konfiguration von Datenquellen
- Logging und Fehlersuche
- Integrationstests
- Testcontainers und containernahe Tests
- Packaging als WAR oder EAR
- Grundlagen für Containerisierung mit Docker
Pattern, Best Practices und Architektur
- Fundamentale Jakarta-EE-Pattern
- Session Beans als Fassaden
- Trennung von Geschäftslogik, Persistenz und Schnittstellen
- Domain Driven Design
- DTOs und Projektionen
- Transaktionsgrenzen sinnvoll schneiden
- Best Practices für wartbare Enterprise-Anwendungen
- Weitere Bestandteile des Jakarta-EE-Stacks
- Alternativen und Ergänzungen wie Spring Framework und MicroProfile
Die Fakten
- Schulungsdauer: 3 Tage, insgesamt 24 Unterrichtsstunden à 45 Minuten
- Gesamtumfang: 24 Unterrichtsstunden à 45 Minuten
- Zielgruppe: Softwareentwickler
- Vorkenntnisse: Robuste Java-Kenntnisse.
- Schulungsunterlagen: Umfassende Seminarunterlagen und Referenzdokumentation
- Softwareumgebung: Java 25 ist die verwendete LTS Standardversion. Als Entwicklungsumgebung dient standardmäßig IntelliJ IDEA. Alternativ können auch die Eclipse IDE oder Visual Studio Code verwendet werden. Als Applikationsserver kommen standardmäßig WildFly oder Payara zum Einsatz. Die Inhalte sind grundsätzlich kompatibel zu Jakarta-EE-konformen Servern. Als Entwicklungsumgebung wird typischerweise IntelliJ IDEA oder Eclipse IDE for Enterprise Java Developers verwendet.
Termine / Kontakt
Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).