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-Entwickler

Kursvoraussetzungen

Kenntnisse aus ›Neuerungen in Java 5‹. Vorwissen im Bereich Java EE 1.4 ist nützlich, aber nicht erforderlich.

Seminarinhalte

[LOGO]
  • 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, @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 [PDF]
  • 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 und EntityManger
    - 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 mit DataSource
  • 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 durch WHERE
    - 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 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.

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

5
142