Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Java EE 7 Grundkurs

Lebenszyklus von CDI-Beans

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Vordefinierte Methoden dienen dazu, den Lebenszyklus von CDI-Beans zu begleiten. Diese beinhalten Annotationen, deren Aufruf bei der Erzeugung eines Beans automatisch durchgeführt wird.

Transkript

In diesem Video werden wir uns mit Lebenzyklus-Callback auseinandersetzen. Das ist zugegebenermaßen ein etwas sperriger Begriff, der aber eine einfache Tatsache bezeichnet. Nämlich, jedes CDI-Bean verfügt über einen definierten Lebenszyklus und es gibt Möglichkeiten, diesen Lebenszyklus zu begleiten. Um diesen Lebenszyklus zu begleiten, können wir sogenannte Callback-Methoden verwenden. Das sind Methoden, die auf Ebene einer Bean liegen, die gerne auch privat sein können und mit einer von zwei möglichen Annotationen annotiert sind. Die eine Annotation ist "PostConstruct" und die andere Annotation ist "PreDestroy". Die PostConstruct-Annotation sorgt dafür, dass die entsprechend annotierte Methode aufgerufen und eingebunden wird, sobald die Bean instanziert worden ist und alle externen Injections vorgenommen worden sind. Das bedeutet, alle benötigten Referenzen liegen bereits vor. Nun kann diese Bean sich selbst initialisieren und dann in einen anwendungsbereiten Zustand versetzen. Eine mit PreDestroy annotierte Methode wird aufgerufen, bevor die Bean endgültig aus dem CDI-Kontext verschwindet. Das können wir nutzen, um referenzierte Beans zu informieren oder letztlich einfach klassische Aufräumarbeiten vorzunehmen. Sehen wir uns doch einmal an, wie wir dies implementieren können. Wir sehen hier eine Klasse "Namensliste". Diese Klasse "Namensliste" soll über CDI verwaltbar sein, deswegen bekommt sie von mir die Dependent-Annotation übergeben. Der Zweck dieser Klasse "Namensliste" ist es, eine Namesliste abrufbar zu machen. Diese Namensliste wird nicht in dieser Klasse generiert, sondern Sie wird von einem "KontakteProvider" bereitgestellt. Diesen lassen wir uns injizieren. Das bedeutet, wir benötigen die Inject-Annotation und wir können bei Bedarf "Qualifier" benutzen, um das Ganze noch etwas weiter auszusteuern. Wenn wir jetzt die vom KontakteProvider bereitgestellte Liste manipulieren wollten, wäre dies wahrscheinlich nicht sinnvoll im Konstruktor dieser Klasse zu erledigen, denn da existiert schlicht noch keine KontakteProvider-Instanz. Sondern wir definieren uns eine private Methode, die nennen wir "initialize". Und diese "initialize"-Methode annotieren wir mit der PostConstruct-Annotation. Wir erhalten jetzt hier eine private Liste vom Typ "String", die die Namen, die uns der KontakteProvider gibt, enthalten wird. Diese Liste manipulieren wir. Das heißt, wir rufen erstmal die Namen vom KontakteProvider ab und können nun eigene Namen hinzufügen. Über einen "Getter" machen wir diese Namen dann verfügbar. Damit ist diese Klasse fertig implementiert. Die relevanten Punkte für uns sind, die mit PostConstruct annotierte Methode und die Injection, die zuvor stattfindet. Auf diese Art und Weise ist sichergestellt mit Hilfe dieser PostConstruct-Annotation, dass diese Methode tatsächlich erst dann durchlaufen wird, wenn der KontakteProvider hier schon initiiert worden ist. Das bedeutet, wir werden hier nicht auf eine "NullReferenceException" oder ähnliche Sachen treffen. Damit ist der Lebenszyklus dieser Bean sinnvoll abgebildet. Sie können analoge Konstrukte in Ihren Projekten verwenden. Überlegen Sie gut, wo Sie diese Komponenten einsetzen können. PostConstruct und PreDestroy können sehr sinnvoll sein.

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!