Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Java EE 7 Grundkurs

Überblick über die CDI

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Die Contexts and Dependency Injection stellt ein Grundprinzip der Java EE dar. Die Einleitung hierzu bietet einen Überblick über das CDI-Framework, stellt dieses in Beziehung zu anderen Ansätzen und zeigt die geschichtliche Entwicklung.

Transkript

In diesem Video werden wir uns mit "Context and Dependency Injection" auseinandersetzen. Wir werden klären, was die Aufgaben von Context and Dependency Injection sind und was seine Vorgängertechnologien sind. Die Aufgabe von CDI, wie Context and Dependency Injection auch abgekürzt wird, ist es, Objekte und ihre Abhängigkeiten zu verwalten. Gleichzeitig sollen diese Objekte und Abhängigkeiten mit einem Lebenszyklus versehen werden können. CDI 1.1 basiert auf CDI 1.0, eingeführt mit der Java EE Version 6. Anders als der Vorgänger, der sich noch sehr stark auf die Verwendung innerhalb des Web-Umfelds, speziell im JSF-Framework beschränkte, wird CDI 1.1 nunmehr innerhalb der Java EE fast überall unterstützt. Der ursprüngliche Ansatz für CDI stammt vom Seam-Framework ab. Da das Seam-Framework jedoch proprietäre Software ist, wurden die interessanten Aspekte daraus im JSR-299 formalisiert. Die aktuelle Version ist im JSR-346 beschrieben. Java-EE-typisch ist CDI kein monolithisches Framework. Das bedeutet, es kann erweitert werden und Sie können eigene Funktionalitäten hinzufügen. Das Grundproblem, was CDI adressieren möchte, ist es, Abhängigkeiten zu verwalten. In der Vergangenheit, eigentlich bis einschließlich heute, ist und war es so, dass wir sehr häufig feste Verdrahtungen von Komponenten untereinander hatten. Dies erlaubt zwar eine schnelle Entwicklung, führt jedoch zu unflexiblen und starren Applikationsstrukturen und zu einer schlechten Testbarkeit. Bereits vor mehr als 10 Jahren erblickte deshalb das SPRING-Framework das Licht der Öffentlichkeit. Dieses Framework hat den Verdienst, das Abhängigkeitsmanagement im Java-Umfeld das erste Mal richtig leicht gemacht zu haben. Zu diesem Zweck wurden die Konfigurationen von Komponenten und deren Abhängigkeiten in XML ausgelagert. Später war dies auch per Annotation möglich. Das SPRING-Framework erlangte so eine sehr weitreichende Verbreitung und eine sehr starke Nutzung im Nicht-Java-EE-Umfeld. Ehrlich gesagt war es auch im Java-EE-Umfeld sehr weit verbreitet. Wurde jedoch etwas obsolet durch die Einführung von CDI. Sehen wir uns nun an, warum und weshalb CDI im Java-EE-Umfeld ein sinnvoller Ansatz sein kann. Sie sehen hier ein zwar sehr einfaches, aber in seiner Struktur typisches Beispiel für Code, der miteinander in Interaktion steht. Wir haben hier zwei Klassen definiert: ein "KontakteProvider", der die klassische Datenschicht einer Java-EE-Applikation darstellen könnte und einen "KantakteManager", der diese Datenschicht nutzt. Der KontakteProvider selbst hat lediglich die Aufgabe, einige Informationen zurückzugeben. Der KontakteManager hat eine Referenz auf den KontakteProvider. Dies geschieht in einer privaten Member-Variablen. Dieser Ansatz ist auch in Zeiten von SPRING und CDI absolut valide und sinnvoll. Nicht valide und sinnvoll ist es jedoch, diese Referenz und Abhängigkeit aufzulösen im Konstruktor des KontakteManagers. Denn hier wird, fest verdrahtet, eine Referenz auf den KontakteProvider erzeugt. Das Problem ist eigentlich gleich ein doppeltes Problem. Zum einen hat man an dieser Stelle die feste Verdrahtung auf eine konkrete Klasse, nämlich den KontakteProvider, und man muss genau wissen, wie die Erzeugung einer KontakteProvider-Instanz vonstatten geht. Dies führt letztlich zu einer unnötig starken Verzahnung der beiden Komponenten miteinander, denn der KontakteManager muss eine Menge über die Erzeugung des KontakteProviders wissen und ist direkt von einer konkreten Klasse, nämlich dem KontakteProvider abhängig. Damit sind Änderungen und Erweiterungen später nur sehr schwer umsetzbar. Das sind die Probleme, die CDI adressieren möchte. Lassen Sie uns am Ende noch einmal kurz zusammenfassen: CDI ist ein Framework, das im Java-EE-Umfeld einen Quasi-Standard für das Verwalten von Abhängigkeiten darstellt. Sie sollten dieses Framework nutzen, statt auf proprietäre Frameworks zurückzugreifen. Der Grundansatz und die Grundidee von CDI ist es, Komponenten voneinander zu entkoppeln und damit letztlich Wartbarkeit und Pflegbarkeit einer Applikation stark zu steigern.

Java EE 7 Grundkurs

Lernen Sie die Grundlagen der Programmierung mit Java EE 7 verstehen und anwenden.

6 Std. 4 min (44 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!