Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Lorenz Schulz Geändert vor über 7 Jahren
1
Einführung in AspectJ ● Inhalt: 1)Überblick 2)Elemente des crosscuttings in AspectJ 3)„Hello World“ in AspectJ 4)Wie Aspekte in Java verwoben werden 5)Join Points 6)Aspects 7)Logistik von AspectJ Gabor Meißner, Sommersemester 2006
2
1. Überblick ● Warum „AspectJ“? – Die Sprache ist eine Erweiterung von Java – Jedes Java- Programm ist auch ein AspectJ- Programm – Der AspectJ- Compiler erzeugt also.class- Dateien, die von der Java VM ausgeführt werden können
3
2. Elemente des crosscutting in AspectJ ● Was ist „crosscutting“? – Ist die Umsetzung des Verwebungskonzepts (weaving) aspektorientierter Programmierung in AspectJ – Verschiedene Module werden systematisch verwoben – Man unterscheidet in dynamisches (während der Ausführung) und statisches (in statischen Strukturen) crosscutting
4
2. Elemente des crosscutting in AspectJ ● Elemente des crotting in AspectJ sind: – Join points (Ereignis im Programmablauf) – Advices (Empfehlungen) – Pointscuts (Schnittpunkte) – Introductions (statisches Pendant zu join points) – Compile-time declaration (statische Umsetzung von Warnungs-/ Fehlererkennung) – Aspects („Klassen“ der Aspektorientierung)
5
2. Elemente des Crosscutting in AspectJ ● Vorgehensweise im Überblick 1.Definition von join points: An welcher Stelle im System soll das Verhalten geändert werden? 2.Implementierung des Designs mit Aspekten 3.Umsetzung der Funktionen durch point cuts 4.Implementierung der advices, die den point cuts zugeordnet sind
6
3. “Hello World” in AspectJ ● Funktionsweise am Beispiel: – Die Java- Klasse „MessageCommunicator“:
7
3. “Hello World” in AspectJ ● Test- Klasse für „MessageCommunicator“:
8
3. “Hello World” in AspectJ ● Ausgabe wäre dann... – Willst du AspectJ lernen? – Harry, viel Spass! ● Wir definieren nun den Aspekt „MannersAspect“
9
3. “Hello World” in AspectJ ● Eine zweite Erweiterung: der Nachsatz „-ji“ (indische Ausdruck des Respektes):
10
4. Wie Aspekte in Java verwoben werden ● Der AspectJ- Compiler muss Code erzeugen, der von der Java VM interpretiert werden kann ● Zentrale Frage dieses Abschnitts: Wie wandelt dieser Compiler also die Elemente der aspektorientierten Programmierung in „normalen“ Java- Bytecode um?
11
4. Wie Aspekte in Java verwoben werden ● Aspects: – Werden als normale Klassen abgebildet, alle Daten und Methoden bleiben entsprechend erhalten. ● Advices: – Als eine oder mehrere Methoden. Ihr Aufruf findet an der Schnittstelle zwischen join points und pointcuts statt ● Pointcuts: – Werden meist nicht explizit abgebildet – können aber bei komplexeren Aufgaben in Methodenform realisiert werden
12
4. Wie Aspekte in Java verwoben werden ● Introductions: – Durch Veränderungen im Quellcode der Klassen ● Compile-zeit Warnungen und Fehler: – Klar: erzeugen Warnungen und Fehler ● Nun kann gezeigt werden, wie ein veränderter Quellcode der MessangerCommunication- Klassen aussehen würde (Achtung: der Compiler erzeugt keinen veränderten Java- Quellcode, sondern nur Java- Bytecode!)
13
4. Wie Aspekte in Java verwoben werden ● Wir wandeln also den Aspekt in eine Klasse um:
14
4. Wie Aspekte in Java verwoben werden ● Nun müssen ebenfalls Anpassungen der MessangerCommunicator- Klasse vorgenommen werden:
15
5. Join points ● = jeder identifizierbare Ausführungspunkt, z.B.: – Methodenaufrufe, -ausführungen, ein return- Statement... ● In AspectJ findet bei diesen join points das zentrale Konzept des crosscutting seine Umsetzung ● Jeder für den Programmierer nutzbare join point nennt sich exposed join points ● Man unterscheidet in verschiedene Kategorien, die nun vorgestellt werden sollen
16
5. Join points ● Methoden- join points – Es gibt Ausführungs- und Aufrufsvarianten – Beispiel für execution join point:
17
5. Join points ●... und ein Beispiel für einen call join point: – Der Aufruf (account.debit(100)) ist der Ort für den join point
18
5. Join points ● Constructor join points: – Ähnlich wie Methoden- join points, nur für Konstruktoren ● Field access join points: – Bei Lese-/ Schreibzugriffen auf Klassenmitglieder oder Instanzen ● Exception handler execution join points: – Bei der Ausnahmebehandlung... ● Class (pre-) initialization join points: – Bei der Initialisierung eines Objekts... ● Advice execution join points: – Umfasst alle Advices eines Systems...
19
6. Aspects ● Sind klassen- ähnliche Einheiten, die die Regeln der Verhaltsänderungen eines Systems durch Aspekte implementieren ● Der Aufbau der Aspekte:
20
6. Aspects ● Die wichtigsten Regeln im Umgang mit Aspekten: – Können data members, methods und Zugriffsspezifikationen besitzen – Können abstrakt sein – Können Klassen und abstrakte Aspekte beinhalten und können in Klassen und Interfaces eingebettet werden – Können mit priviligiertem Zugriff versehen werden
21
7. Logistik von AspectJ ● Der Compiler und seine Arbeitsweise wurden bereits vorgestellt... ● Es gibt einen speziellen Browser zur Darstellung der Verwebung ● Sowie eine Plugin- basierte Anbindung an gängige Programmierumgebungen für Editierung, Compilierung und Debugging
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.