Kapitel 4 - Java APIs und Frameworks Flashcards
Was ist JDBC?
- Schnittstelle für Verbindung und Interaktion mit Datenbanken
- Datenbankspezifische Datentypen werden gleich in das Typ-System der Programmiersprache umgewandelt
- Vorgang
- Aufbau der DB-Verbindung
- Weiterleitung der SQL-Befehle
- Verarbeitung von Ergebnissen in Java-Typen
Was ist Lazy Loading?
- Beim Lazy Loading werden @ToMany Beziehungen erst referenziert, wenn diese gezielt aufgerufen werden
- Ansonsten nur @ToOne Beziehungen direkt geladen
- Vorteil: Performance
Was ist die Persistence Unit?
- Verbindung zwischen Entity-Klassen und Datenbankverbindung
Was steht in der persistence.xml?
- Persistence Unit wird benannt
- Klassen, die Entitys in Persistence Unit darstellen
- Providerübergreifende Parameter
Was ist der Persistence Context?
- Geltungsbereich, innerhalb dessen Operationenzwischen Entitys und der Datenbank synchronisiert werden
- Jede Methode wird im Context überwacht
- JPA sychronisiert Änderungen und versucht diese zu bündeln
- damit so wenig DB-Aufrufe wie möglich
- Dadurch ist Zustand erst beim Verlassen des Contextes garantiert sychronisiert und committed
Welche Zustände des Persistence Contextes gibt es?
- new –> persist
- managed –> refresh, remove
- detached –> merge
- removed –> persist
Merkmale von JDBC
- Einheitliche API Definition für die Anbindung relationaler DBs
- Vorgehen
- Aufbau der DB Verbindung
- Weiterleitung von SQL Befehlen
- Verarbeitung der Ergebnisse in Java-Typen
- JDBC Treiber werden dynamisch zur Laufzeit geladen
- keine Installation
- Treiber müssen im Classpath vorhanden sein
- Verbindungsaufbau wird durch spezielles URI Format sichergestellt
Was ist die Funktion von EJB (Enterprise Java Beans)?
- Java-Klassn, deren Lifecycle durch den Applicationsserver gesteuert wird
- dadurch Hochverfügbarkeit und Lastverteilung durch App Server möglich
Was ist die Funktion von JSF (Java Server Faces)?
Komponentenbasiertes Webframework
Was sind EJB (Enterprise Java Beans)?
- Grundlage zur Implementierung der Business Logik in Java Enterprise Anwendungen
- Genügen Anforderungen von Java-Beans (Leerer Konstruktor, getter und setter)
- werden in JavaEE Laufzeitumgebung ausgeführt
- Sind mittelsDependency Injection verknüpft
- Werden durch Applicationsserver gemanaged
Welche zwei Arten von EJB gibe es?
- Single Beans –> Implementieren Business-Logik
- Message Driven Beans –> Behandeln Nachrichten
Für welche zwei Dinge sind Baking Beans verantwortlich?
- Halten von Daten im Kontext des entsprechenden Scopes
- Bsp. Warenkorb Onlineshop
- Ausführen von Business Logik
Welche Scopes gibt es bei den Baking Beans?
- request –> Nur für einen einzigen Request-Response Zyklus
- session –> Gilt nur für eine ganze Session
- application –> Gilt für die gesamte Anwendung
- view –> so lange, wie Client auf dieser Seite ist
- flash –> wie request, nur mit redirects
Was sind die Vorteile von JSF?
- wiederverwendbare Webkomponenten
- Dynamische Navigationslogik
- Entkopplung von View, Model und Business-Logik
- Hilfe bei der Validierung von Eingaben
- Support für AJAX
Was sind die Vorteile von JSF?
- Wiederverwendbare Webkomponenten
- Dynamische Navigationslogik
- Entkopplung von View, Model und Business-Logik
- Hilfe bei der Validierung von Eingaben
- Support für AJAX
Spezifikation von JAX-RS
- API zur Erzeugung von URLs
- Binden von Ressourcen an URLs
- Kontrolle über HTTP-Header
- API zum Bauen von clientseitigen Java-Anwendungen für REST Backends
Wie bindet JAX-RS Metainfos an den Code?
Über Annotations.
Kümmert sich JAX-RS um die Repräsentationsformate?
Nein –> JAXB oder JSONB kümmern sich um die Repräsentationsformate.
Was ist die Funktion von JNDI (Java Naming and Directory Interface)?
- Verzeichnisdienst, der verschiedene Ressourcen zur Laufzeit verwaltet und zur Verfügung stellt
Was ist die Funktion von JPA (Java Persistence API)?
Objekt-relationales Mapping für die Java EE Plattform
Was bedeutet objektrelationales Mapping?
- Relationale Datenstrukturen aus Datenbanken werden so aufbereitet, dass sie in einer opjektorientierten Sprache verwendet werden können, als wären sie Objekte dieser Sprachdomäne
Wie kann JPA konfiguriert werden?
- Annotations
- XML
Welche Entity-Mapping Typen kennen Sie um Vererbungen darstellen zu können?
- SINGLE_TABLE
- TABLE_PER_CLASS
- JOINED
Merkmale JPA
- Abbildung relationaler DB Strukturen auf Java Objekte
- Zustandsüberwachung und Synchronisierung der Entity-Objekte mit der DB
- Opjektorientierte Abfragesprache JPQL
Was sind Merkmale von JPA (Java Persistence API)?
- Abbildung relationaler DB Strukturen auf Java Objekte
- Zustandsüberwachung und Synchronisierung der Entity-Objekte mit der DB
- Objektorientierte Abfragesprache JPQL
Welche Klassifizierungen des Session Beans gibt es?
- Stateful
- Zustände für Client-Sitzung werden über mehrere Request-Zyklen gehalten
- Werden für jeden Client instanziiert
- Stateless
- Zustände werden nur in Businessmethode verwaltet
- Können von verschiedenen Clients gleichzeitig verwendet werden
- Applicationsserver verwaltet eigenständig anhand des Lastverhaltens den Pool der Session Beans
- Singleton
- Werden nur einmalig in Anwendung instanziiert
- Leben genauso lange wie die Anwendung
Warum sollte man keine Stateful-Bean in eine Stateless-Bean injizieren?
Zustandsfreiheit der Stateless-Bean wird unterbrochen.
Beschreiben Sie die einzelnen JSF Phasen
- Komponentenbaum aufbauen
- Parsen des View-Models
- Initialisierung der Backing Beans
- Request Parameter auslesen
- Die Daten aus einem POST Formlar extrahieren und JSF zur Verfügung stellen
- Request Parameter validieren
- Gewonnene Dateien validieren mit Views oder Baking Beans
- Modell aktualisieren
- neue Werte werden in Baking Beans gesetzt
- Business-Logik ausführen
- Wenn Action-Methode eine Baking Bean aufgerufen wurde, wird dieser ausgeführt
- Entscheidung, welche View als nächstes kommt
- Antwort rendern
- ggf. neue View parsen
- Komponentenbaum aufbauen
- Markup zum Client ausgeben
Nennen Sie die sechs Schritte der Interaktion eines Clients mit Webserver über Servlet Container.
- HTTP Request (Anfrage an Web Server)
- Forward Request (Anfrage von Webserver an Servlet Container)
- Load Servlet
- Init Servlet
- Process Request
- HTTP Response (Von Servlet Container an Webserver und weiter zum Client)