EJB und JPA
Die ›Java Platform, Enterprise Edition (Jakarta EE)‹ unterstützt die Entwicklung von mehrschichtigen, verteilten Anwendungen. Zum Aufbau wieder verwendbarer, verteilter Komponenten dienen die ›Enterprise JavaBeans‹ (EJB). Ein Applikationsserver stellt dabei eine Ablaufumgebung für EJBs bereit und übernimmt Transaktionsmanagement, Sicherheitskontrolle, Verzeichnisdienst, Persistierung und weitere Dienste. Mit den neuen vereinfachten Enterprise JavaBeans ab Version 3 stehen einfache ›Plain Old Java Objects‹ (POJO) wieder in den Mittelpunkt und werden mit Annotationen zu wiederverwendbaren Komponenten für den Enterprise Application-Server gemacht. Im ersten Teil des EJB 3-Seminars bilden die Teilnehmer die Geschäftslogik mit zustandslosen und zustandsbehafteten Session Beans, Web-Services und Message Driven Beans ab. Im zweiten Teil der EJB-Weiterbildung werden mit der ›Java Persistence API‹ (JPA) Entity Beans modelliert und mit dem Entity-Manager CRUD-Operationen (Anlegen/Lesen/ Aktualisieren/Löschen) durchgeführt. Zudem gibt es aus dem Entwickleralltag effektive Deployment-Strategien, grundlegende Jakarta EE-Entwurfsmuster und Best Practices zur Pflege großer geschäftskritischer Java-Anwendungen und Tipps zum Aufbau von serviceorientierten Architekturen (SOA).
Inhalte des Seminars
Einführung in EJB
- Komponentenorientierung, mehrschichtige Architekturen
- Jakarta EE und EJB-Container
- Bean-Typen und ihre Aufgaben
- Änderungen von EJB 2 zu EJB 3 und von J2EE 1.4 zu Jakarta EE
- Java Persistence Spezifikation und Provider
- Konfiguration durch Annotationen und externe Deployment Deskriptoren
- Migration und Interoperabilität vom EJB 2.0-Anwendungen
- Applikationsserver JBoss, Installation, JBoss Installer
- Namensdienst von JBoss, ›Java Naming and Directory Interface‹ (JNDI)
- Deloyment in JBoss
- Profile, EJB Lite/Web Profile, EJB 3 Embeddable Container
- Vereinfachte Paketierung
Session Beans
- Stateless Session Bean,
@Stateless
- EJB-Name im JNDI, globale JNDI-Namen
- Lokale und entfernte Beans,
@Local
und@Remote
- Remote Client
- Stateful Session Bean,
@Stateful
- Optionale Session Bean Business-Interfaces
- Singleton, Asynchrone Session Beans
- Kalender-basierter Timer
Web-Services
- Web-Services, SOAP, WSDL, UDDI
- EJB-Tier Endpoint
- Web Services,
@WebService
,@WebMethod
- JAXB 2
- Web Services und Interaktionsschichten
Message Driven Beans
- Java Message Service (JMS)
- Queue, Topic, Publish, Subscribe
- Definition einer MDB,
@MessageDriven
- Topic- oder Queue-basierte JMS,
@ActivationConfigProperty
- Client-Seite mit JMS
Injizierung und Callbacks
- Das Prinzip ›Inversion of Control‹ (IoC) und ›Dependency Injection‹
- EJB-Verweise,
@EJB
- Session-Context
- Lebenszyklus der Beans
- Aktivierung, Passivierung
Interceptor
,InvocationContext
Timer
,@Timeout
DataSource
und Ressourcen spritzen,@Resource
Datenbankanbindung mit JPA und Entity Beans
- Test-Datenbank
- Modellierung eines Kunden als EJB 3 Entity Bean (einfaches POJO)
- Persistence Unit,
META-INF
/persistence.xml
- Entity Manager API
- Die Typen Persistence,
EntityManagerFactory
undEntityManager
- Suchen von Entities,
find
,getReference
- Direkte Beans und Proxies
merge
,remove
,flush
,refresh
- FlushMode
- Autogenerierte Schlüssel,
@Id
mit@GeneratedValue
- In-Container- und Out-of-Container-Persistence
META-INF
/persistence.xml
mitDataSource
Fortgeschrittene Mapping-Technologien
- Physikalisches Mapping (Tabellenname, Spalteneigenschaften)
@Table
und@Column
,@Lob
und@Temporal
,@Enumeration
- Logisches Mapping
- Komponenten, eingebette Objekte
- Named Queries
- Assoziationen, 1:1, 1:n, n:m
- Vererbung
- CascadeType und FetchType
- Java Persistence Query Language (JPA-QL/JPQL), ehemals EJB-QL
SELECT
,FROM
, Einschränkungen durchWHERE
- Gruppierungen durch
GROUPBY
,HAVING
- Kartesisches Produkt und Joins
Entity Listener
- Entity-Listeners und Callback-Methoden
@PostLoad
,@EntityListeners
Transaktionen und Sicherheit
- ACID-Prinzip
- ›Java Transaction API‹ (JTA)
- Deklarative Sicherheitseinstellungen
- Transaktionsattribute,
@TransactionAttribute
- Benutzer und Rollen
- ›Java Authentication and Authorization Service‹ (JAAS)
- Login-Module von JBoss
- Security-Domains
- Annotationen für SecurityDomain, Rechte
- Client
- Programmierte Sicherheit
Pattern, Best Practices und EJB Best Practices
- Fundamentale Jakarta EE-Pattern
- Session Beans als Fassaden
- Transferobjekte/Value Object
- Domain Driven Design
- Weitere Bestandteile des Jakarta EE Stack
- Alternativen zu Jakarta EE: Spring Framework
Termine / Kontakt
Jedes Seminar führt tutego als kundenangepasstes Inhouse-Seminar durch.
Alle unsere Seminare können zudem als Live-Online-Seminar besucht werden.
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).
Die Fakten
- Empfohlene Schulungsdauer: 3 Tage, insgesamt 24 Unterrichtsstunden à 45 Minuten
- Zielgruppe: Software-Entwickler
- Vorkenntnisse: Kenntnisse aus ›<<<JAVA5>>>‹. Vorwissen im Bereich Java EE 1.4 ist nicht erforderlich.
- Schulungsunterlagen: Deutschsprachige Unterlagen (Kopien der Folien mit Inhaltsverzeichnis und Index), Zertifikat
- Seminar-Software: Java 21 ist die Standardversion, die in Verbindung mit der IntelliJ IDEA (Community-Edition) verwendet wird. Auf Wunsch auch die Eclipse IDE (Paket ›Eclipse IDE for Enterprise Java Developers‹) oder andere Entwicklungsumgebungen (NetBeans, Oracle JDeveloper) und JDK 8. Der Applikationserver für EJB 3.2 und JPA 3.1 ist standardmäßig WildFly 33.0 (bzw. JBoss EAP 7.4). Die Inhalte sind aber grundsätzlich containerunabhängig und die Anwendungen können auf den unterschiedlichen Jakarta EE-Applikationsservern, wie IBM WebSphere, Oracle Application Server, BEA WebLogic oder GlassFish/Payara Server laufen. Als Entwicklungsumgebung wird standardmäßig die ›Eclipse IDE for Enterprise Java Developers‹ eingesetzt.
Weiterführende Seminare
JBoss 6 Administration und Konfiguration, JavaServer Pages (JSP) und Servlets, JavaServer Faces 2, <<<JBOSSSEAM>>>, Spring-Framework, Refactoring, Design Pattern (Entwurfsmuster) in Java, Effektiv Java programmieren, Java Enterprise Architektur und Design Patterns