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.

Spring Framework Grundkurs

Praktisches Beispiel der Anwendung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Am Beispiel des Betankens und Startens eines Pkw verdeutlicht dieses Video das Zusammenspiel zwischen Spring und aspektorientierter Programmierung.

Transkript

In diesem Video zeige ich Ihnen ein Beispiel für die Zusammenarbeit von Spring und aspektorientierte Programmierung. Das Ganze möchte ich anhand des Startens und Betankens eines Autos demonstrieren. Zunächst einmal ist es wichtig, dass alle Abhängigkeiten korrekt eingebunden sind. Diese befinden sich in der pom.xml von Maven. Wichtig hier Spring AOP und der Spring Kontext um die Beans zu initialisieren. Weiterhin muss AspectJ eingebunden sein, um die Annotationen zur Verfügung zu stellen. In diesem Beispiel verwende ich sowohl die Annotationskonfiguration als auch die XML-Konfiguration. Ich starte die Anwendung und das Resultat ist, es gibt einen "Tankauftrag", es gibt einen "Motor Startversuch", "Vor dem Motorstart", "Motor gestartet", "Nach dem Motorstart", "Fahrzeug fährt los" Wenn man sich nun die Implementierung anschaut, dann wird lediglich das Fahrzeug abgerufen, Benzin getankt, Motor gestartet und gefahren. Wenn man sich die Klasse dazu anschaut, passiert aber in keiner der Methoden irgendetwas. Um nun herauszufinden, wo die Aspekte dafür sind, navigiere ich hier über den Seitenrand zum jeweiligen Aspekt der hierauf Einfluss hat. Hier sieht man, dass anhand der Anweisung Before("startEnginePointcut()") "Vor dem Motorstart" ausgegeben wird. Der Pointcut selber ist hier spezifiziert, startEnginePointcut() und verweist auf die startEngine-Methode der Klasse "K". Außerdem gibt es einen Pointcut für addFuel, also Benzin hinzufügen, der zusätzlich das Argument der Liter entgegennimmt und auch hier weitergibt. Für die Abfrage von addFuel wird dann hier Liter entgegengenommen, anhand des Pointcuts und dementsprechend auf der Konsole ausgegeben. Dadurch entsteht also der "Auto Tankauftrag: 20" Der "Motor Startversuch" kommt von der Around-Annotation. Die Around-Annotation genießt Priorität gegenüber der Annotation Before, die auch denselben Zweck hat. Das heißt, wenn der "Motor Startversuch" ausgeführt wird gibt es eine 50-prozentige Chance anhand dieses Zufallsgenerators, dass der Motor gestartet wird und wenn er tatsächlich gestartet wird, wird über proceed() die weitere Prozedur aufgerufen und auch nur dann kann dieser Pointcut zutreffen, da ansonsten der Methodenaufruf verhindert wird. Mit After wird hier nach dem Methodenaufruf "Nach dem Motorstart" angegeben. Das "Fahrzeug fährt los" ist nicht an diesen Stellen definiert, in diesem Code im CarAspect sondern tatsächlich in der XML-Konfiguration als Alternative. Hier gibt es den SapmleXMLAspect als Beispiel der über die None den Before-Advice definiert und den zugehörigen Pointcut, der sich eben auf die drive-Methode der Klasse "K" auswirkt. Auf dem SampleXMLAspect gibt es nun also keine Annotationen lediglich die Methode logMessage die "Fahrzeug fährt los .." angibt. Um Ihnen einen Überblick über alle Methoden, die im Einzelnen aufgerufen werden zu schaffen, kann ich mit dem MonitoringAspect, den ich nun aktiviere nachvollziehen, welche Klasse, welche Methode und welche Argumente genutzt wurden. Genauso, welcher Rückgabewert zurückkam. In dem Fall ist der Motorstart fehlgeschlagen, d. h. "Nach dem Motorstart" passiert tatsächlich aber "Vor dem Motorstart" passiert nicht, da die Methode tatsächlich nie ausgeführt wurde. Anhand der Aufrufe sieht man nun, addFuel wird aufgerufen aber in der Zwischenzeit wird tatsächlich nie die Methode aufgerufen, die den Motor startet aber die drive-Methode wird zum Schluss aufgerufen. Ich habe Ihnen gezeigt, wie Sie mithilfe von Aspekten, den Annotationen und der jeweiligen XML-Konfiguration die Prinzipien aspektorientierter Programmierung zukünftig in Ihrer eigenen Anwendung platzieren können.

Spring Framework Grundkurs

Steigen sie zum Java-Champion auf und meistern Sie den Umgang mit dem Spring Framework.

2 Std. 4 min (20 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Spring Framework Spring Framework 3
Exklusiv für Abo-Kunden
Erscheinungsdatum:24.09.2014

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!