EJB und JPA
Empfohlene Schulungsdauer: 3 Tage, insgesamt 24 Unterrichtsstunden à 45 Minuten
Kursziele
Die ›Java Platform, Enterprise Edition (Java EE)‹ von Sun Microsystems 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 der Version 3.1 stehen einfache ›Plain Old Java Objects‹ (POJO) wieder in den Mittelpunkt und werden mit Annotationen aus Java 5 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 Java EE-Entwurfsmuster und Best Practices zur Pflege großer geschäftskritischer Java-Anwendungen und Tipps zum Aufbau von serviceorientierten Architekturen (SOA).
Zielgruppe
Software-EntwicklerKursvoraussetzungen
Kenntnisse aus ›Neuerungen in Java 5‹. Vorwissen im Bereich Java EE 1.4 ist nützlich, aber nicht erforderlich.Seminarinhalte
![[LOGO]](../../images/seminare/logos/java.png)
Einführung in EJB 3.1 und den Java EE 6 Applikationsserver
- Komponentenorientierung, mehrschichtige Architekturen
- Java EE und EJB-Container
- Bean-Typen und ihre Aufgaben
- Änderungen von EJB 2 zu EJB 3 und von J2EE 1.4 zu Java EE 6
- 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/Java EE 6 Web Profile, EJB 3.1 Embeddable Container
- Vereinfachte Paketierung
Session Beans
- Stateless Session Bean,@Stateless
- EJB-Name im JNDI, globale JNDI-Namen
- Lokale und entfernte Beans,@Localund@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
-DataSourceund Ressourcen spritzen,@Resource![[PDF]](../../images/pdfSmall.png)
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,EntityManagerFactoryundEntityManger
- Suchen von Entities,find(),getReference()
- Direkte Beans und Proxies
-merge(),remove(),flush(),refresh()
- FlushMode
- Autogenerierte Schlüssel,@Idmit@GeneratedValue
- In-Container- und Out-of-Container-Persistence
-META-INF/persistence.xmlmitDataSource
Fortgeschrittene Mapping-Technologien
- Physikalisches Mapping (Tabellenname, Spalteneigenschaften)
-@Tableund@Column,@Lobund@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 durchGROUPBY,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 Java EE-Pattern
- Session Beans als Fassaden
- Transferobjekte/Value Object
- Domain Driven Design
- Weitere Bestandteile des Java EE Stack
- Alternativen zu Java EE: Spring Framework
Ausblick auf Java EE 7
- CDI 1.1
- EJB 3.2
- JPA 2.1
- Weiters aus Java EE 7
Schulungsunterlagen
Deutschsprachige Unterlagen (Kopien der Folien mit Inhaltsverzeichnis und Index), Zertifikat.
Eingesetzte Seminar-Software
Als Laufzeitumgebung wird standardmäßig Java SE 7 von Oracle zusammen mit der Entwicklungsumgebung Eclipse 4.2 bzw. Eclipse 3.7.2 eingesetzt (Paket ›Eclipse IDE for Java EE Developers‹). Auf Wunsch auch NetBeans 7 oder andere Entwicklungsumgebungen (IntelliJ IDEA, Oracle JDeveloper). Der Java EE-Applikationserver für EJB 3.1 ist standardmäßig JBoss 7.1. Die Inhalte sind aber grundsätzlich containerunabhängig und die Anwendungen können auf den unterschiedlichen Java EE-Applikationsservern, wie IBM WebSphere, Oracle Application Server, BEA WebLogic oder GlassFish laufen. Als Entwicklungsumgebung wird standardmäßig die ›Eclipse IDE for Java EE Developers‹ eingesetzt.
Schlagwörter
Unternehmen
Weiterführende Seminare
IBM WebSphere Application Server V7.0 Administration, Geronimo Administration, JBoss 6 Administration, JavaServer Pages (JSP) und Servlets, JavaServer Faces 2.1, Web 2.0-Applikationen mit JBoss Seam, Spring-Framework, Refactoring, Design Pattern (Entwurfsmuster) in Java, Effektiv Java programmieren, Java EE Architektur und Design Patterns