Kapitel 4 - Java APIs und Frameworks Flashcards

1
Q

Was ist JDBC?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist Lazy Loading?

A
  • Beim Lazy Loading werden @ToMany Beziehungen erst referenziert, wenn diese gezielt aufgerufen werden
  • Ansonsten nur @ToOne Beziehungen direkt geladen
  • Vorteil: Performance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist die Persistence Unit?

A
  • Verbindung zwischen Entity-Klassen und Datenbankverbindung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was steht in der persistence.xml?

A
  • Persistence Unit wird benannt
  • Klassen, die Entitys in Persistence Unit darstellen
  • Providerübergreifende Parameter
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist der Persistence Context?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welche Zustände des Persistence Contextes gibt es?

A
  • new –> persist
  • managed –> refresh, remove
  • detached –> merge
  • removed –> persist
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Merkmale von JDBC

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist die Funktion von EJB (Enterprise Java Beans)?

A
  • Java-Klassn, deren Lifecycle durch den Applicationsserver gesteuert wird
  • dadurch Hochverfügbarkeit und Lastverteilung durch App Server möglich
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist die Funktion von JSF (Java Server Faces)?

A

Komponentenbasiertes Webframework

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was sind EJB (Enterprise Java Beans)?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Welche zwei Arten von EJB gibe es?

A
  • Single Beans –> Implementieren Business-Logik
  • Message Driven Beans –> Behandeln Nachrichten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Für welche zwei Dinge sind Baking Beans verantwortlich?

A
  • Halten von Daten im Kontext des entsprechenden Scopes
    • Bsp. Warenkorb Onlineshop
  • Ausführen von Business Logik
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Welche Scopes gibt es bei den Baking Beans?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was sind die Vorteile von JSF?

A
  • wiederverwendbare Webkomponenten
  • Dynamische Navigationslogik
  • Entkopplung von View, Model und Business-Logik
  • Hilfe bei der Validierung von Eingaben
  • Support für AJAX
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was sind die Vorteile von JSF?

A
  • Wiederverwendbare Webkomponenten
  • Dynamische Navigationslogik
  • Entkopplung von View, Model und Business-Logik
  • Hilfe bei der Validierung von Eingaben
  • Support für AJAX
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Spezifikation von JAX-RS

A
  • 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
17
Q

Wie bindet JAX-RS Metainfos an den Code?

A

Über Annotations.

18
Q

Kümmert sich JAX-RS um die Repräsentationsformate?

A

Nein –> JAXB oder JSONB kümmern sich um die Repräsentationsformate.

19
Q

Was ist die Funktion von JNDI (Java Naming and Directory Interface)?

A
  • Verzeichnisdienst, der verschiedene Ressourcen zur Laufzeit verwaltet und zur Verfügung stellt
20
Q

Was ist die Funktion von JPA (Java Persistence API)?

A

Objekt-relationales Mapping für die Java EE Plattform

21
Q

Was bedeutet objektrelationales Mapping?

A
  • 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
22
Q

Wie kann JPA konfiguriert werden?

A
  • Annotations
  • XML
23
Q

Welche Entity-Mapping Typen kennen Sie um Vererbungen darstellen zu können?

A
  • SINGLE_TABLE
  • TABLE_PER_CLASS
  • JOINED
24
Q

Merkmale JPA

A
  • Abbildung relationaler DB Strukturen auf Java Objekte
  • Zustandsüberwachung und Synchronisierung der Entity-Objekte mit der DB
  • Opjektorientierte Abfragesprache JPQL
25
Q

Was sind Merkmale von JPA (Java Persistence API)?

A
  • Abbildung relationaler DB Strukturen auf Java Objekte
  • Zustandsüberwachung und Synchronisierung der Entity-Objekte mit der DB
  • Objektorientierte Abfragesprache JPQL
26
Q

Welche Klassifizierungen des Session Beans gibt es?

A
  • 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
27
Q

Warum sollte man keine Stateful-Bean in eine Stateless-Bean injizieren?

A

Zustandsfreiheit der Stateless-Bean wird unterbrochen.

28
Q

Beschreiben Sie die einzelnen JSF Phasen

A
  1. Komponentenbaum aufbauen
    • Parsen des View-Models
    • Initialisierung der Backing Beans
  2. Request Parameter auslesen
    • Die Daten aus einem POST Formlar extrahieren und JSF zur Verfügung stellen
  3. Request Parameter validieren
    • Gewonnene Dateien validieren mit Views oder Baking Beans
  4. Modell aktualisieren
    • neue Werte werden in Baking Beans gesetzt
  5. Business-Logik ausführen
    • Wenn Action-Methode eine Baking Bean aufgerufen wurde, wird dieser ausgeführt
    • Entscheidung, welche View als nächstes kommt
  6. Antwort rendern
    • ggf. neue View parsen
    • Komponentenbaum aufbauen
    • Markup zum Client ausgeben
29
Q

Nennen Sie die sechs Schritte der Interaktion eines Clients mit Webserver über Servlet Container.

A
  1. HTTP Request (Anfrage an Web Server)
  2. Forward Request (Anfrage von Webserver an Servlet Container)
  3. Load Servlet
  4. Init Servlet
  5. Process Request
  6. HTTP Response (Von Servlet Container an Webserver und weiter zum Client)