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

Java EE 7: Geschäftsanwendungen

Applikation konfigurieren

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Eine Java-EE-Applikation sollte sich stets in definiertem Zustand befinden, sobald der erste Nutzer darauf zugreift. Dies kann mit Hilfe von Singleton Session Beans und der Startup Annotation umgesetzt werden.

Transkript

Wenn wir wollen, dass sich eine Applikation immer in einem definierten Zustand befindet, auch wenn der erste Benutzer darauf zugreift, dann sollten wir Singleton Session Beans verwenden. In diesem Video werden wir uns deshalb mit Singleton Session Beans auseinandersetzen und klären, wann man sie wie, wo, an welcher Stelle am sinnvollsten einsetzen kann. Singleton Session Beans sind EJB-Komponenten, die einmal pro Applikation und Applikationsserver erzeugt werden. Innerhalb eines Applikationsserver-Clusters können sich ja mehrere Applikationsserver befinden, die sogenannten Cluster Member. Je Cluster Member wird dabei einmal eine Singleton Session Bean angelegt. dass eine Bean eine Singleton Session Bean sein soll, drücken wir mit Hilfe der @Singleton-Annotation aus. Singleton Session Beans haben einen Zustand, einen Status. Dieser Status wird zwischen den verschiedenen Cluster Membern repliziert. Singleton Session Beans unterstützen parallele Zugriffe. Und wir haben die Möglichkeit zu steuern, wie diese parallelen Zugriff stattfinden, nämlich exklusiv oder nicht exklusiv. So eine Singleton Session Bean wird üblicherweise bei ihrer ersten Verwendung initialisiert. Das kann, muss aber nicht der Zeitpunkt sein zu dem die Applikation startet. Wenn wir wollen, dass die Singleton Session Bean direkt beim Start der Applikation initialisiert wird, dann notieren wir neben der @Singleton-Annotation ebenfalls die @Startup-Annotation auf Ebene der Singleton Session Bean. Damit ist sichergestellt, dass diese Bean vom Application Server, beim Start der Applikation automatisch initialisiert wird. Haben wir mehrere Beans, die mit der @Startup-Annotation versehen sind, wird die Reihenfolge der Beans vom Container bestimmt. Möchten wir das nicht, können wir die DependsOn-Annotation benutzen, um eine Sequenz zu definieren. Der Lebenszyklus einer Singleton Session Bean ist ziemlich einfach. Sie wird erzeugt und dann bleibt diese Singleton Session Bean mit ihrem Status so lange aktiv wie die Apllikation läuft. Und ganz am Ende des Applikations-Lebenszykluses wird die Singleton Session Bean wieder verworfen. Wir werden nun eine Singleton Session Bean definieren, die unsere Applikation insofern initialisiert, als dass sie einen Datensatz immer schon anlegt, wenn die Applikation gestartet worden ist und sich noch kein Datensatz in der Datenbank befindet. Auf die Art und Weise haben wir immer etwas was später anzeigen können. Die Singleton Session Bean, die wir nun erzeugen wollen, befindet sich in Package "com.cm.ejb.beans". Es handelt sich um eine ganz normale Java Klasse. Sie hat den "InitializationBean". Damit sie als Singleton Session Bean erkannt werden kann, müssen wir sie mit der @Singleton-Annotation versehen. Achten Sie darauf, dass Sie das richtige Import benutzen, nämlich javax.ejb.singelton. Und wir müssen sie mit der @Startup-Annotation versehen, damit sichergestellt ist, dass diese Biene auch beim Start der Applikation schon instanziiert wird. Nun können wir uns in diese Bean eine Instanz unserer CustomerDAO Schnittstelle, beziehungsweise einer Implementierung davon injizieren lassen. Dies machen wir, indem wir eine private Membervariable anlegen und diese Membervariable mit der @EJB-Annotation versehen. Nun möchten wir noch eine Methode schreiben, die aufgerufen wird, sobald die Bean initialisiert worden ist. Dies machen wir indem wir eine Methode mit dem Namen "initialize()" Anlegen, der Name ist eigentlich völlig unwichtig, und dieser Methoden die @PostConstruct-Annotation voranstellen. Nun sind wir in der Lage einen Code auszuführen, der automatisch aufgerufen wird, sobald die Bean erzeugt und die Abhängigkeiten injiziert worden sind, Nun können wir überprüfen, ob sich überhaupt schon ein Eintrag in der Datenbank befindet. Wir machen dies, indem wir über das CustomerDAO uns eine Liste aller Kunden zurückgeben lassen und schauen, ob da mindestens ein Element drin ist. Ist dem nicht so, also haben wir eine Länge von Null, dann legen wir einen neuen Datensatz an. Dies machen wir indem wir eine Customer Instanz erzeugen. Diese Customer Instanz hat in diesem Fall ein männliches Geschlecht und verfügt schon über einen Vor- und Nachnamen. Ebenfalls erzeugen wir einen Geburtstag, beziehungsweise nutzen eine Calendar Instanz, um ein Geburtsdatum zu definieren und weisen das dann der Eigenschaft "Birthday" der Customer Instanz zu. Nun definieren wird noch eine Adresse. Diese Adresse ist eine geschäftliche Adresse und wird der Addresses-Auflistung des Customers hinzugefügt. Zuletzt definieren wir noch einen Kommunikationseintrag mit einer geschäftlichen E-Mail-Adresse. Und auch diesen Eintrag fügen wir dem Customer hinzu, in diesem Fall an seiner Eigenschaft "Communications". Den so erzeugten Customer können wir nun speichern. Dazu verwenden wir die Methode "create" des CustomerDAOs. Damit haben wir die Initialisierung unserer Applikation abgeschlossen. Deployen wir nun unsere Applikation auf dem Server neu, werden ja sämtliche Daten in der Datenbank gelöscht. Nach dem erfolgreichen Deployment, wird unsere Singleton Session Bean aufgerufen und wir können feststellen, dass ein neuer Datensatz bereits in die Datenbank eingefügt worden ist, denn es existierten ja keine Daten mehr. Wir können dies dann auch in der MySQL-Workbench nachvollziehen. Wenn wir uns hier die Inhalte der Tabellen "Customer", "Address" und "Communication" ansehen, stellen wir fest, dass sich jeweils ein Datensatz in diesen Tabellen befindet. Unsere Initialisierung hat also offensichtlich funktioniert. In diesem Video haben wir uns mit den Initialisierung unserer Applikation auseinandergesetzt. Wir haben zu diesem Zweck eine Singleton Session Bean geschrieben und nutzen diese, um dafür zu sorgen, dass mindestens immer ein Datensatz in der Datenbank vorhanden ist.

Java EE 7: Geschäftsanwendungen

Verfolgen Sie, wie eine komplette Business-Applikation unter dem Einsatz des gesamten Java-Enterprise-Techologiestacks ensteht.

5 Std. 2 min (39 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!