Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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.

Ähnliche Präsentationen


Präsentation zum Thema: "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."—  Präsentation transkript:

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


Herunterladen ppt "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."

Ähnliche Präsentationen


Google-Anzeigen