Aspektorientierte Programmierung mit AspectJ
Dieses Seminar führen wir im Moment nicht durch.
Die Einheit der Modularisierung in der Objektorientierung ist eine Klasse (Daten und Verhalten), aber nicht alle Belange sind mit diesem Konstrukt sauber zu modularisieren; in der Praxis kommen weitere querschneidende Verantwortlichkeiten dazu. Einige typische Beispiele sind Logging, Observierung und Transaktionsmanagement. Symptomatisch sind vor allem ähnliche oder identische Codefragmente, die sich in der gesamten Anwendung wiederholen und Fragmente mit unterschiedlichen Verantwortlichkeiten, die innerhalb einer Klasse vermischt sind. Das Resultat ist eine zerstörte Modularisierung, die Verständlichkeit, Wartung und Wiederverwendung erschwert. Die Modularisierungslücken können durch Aspekt-orientierte Programmierung (AOP), eine Weiterentwicklung der objektorientierten Programmierung (OOP), geschlossen werden. Die Kursteilnehmer erlernen, Aspekte in eigenen Projekten zu erkennen und mit Hilfe der AOP-Technologie sauber zu modularisieren. Das AOP-Seminar baut auf der aktuellen Version von AspectJ 5 auf, einer aspektorientierten Erweiterung der Programmiersprache Java. Als Entwicklungsumgebung kommt Eclipse mit AspectJ Development Tools (AJDT) zum Einsatz.
Inhalte des Seminars
Einführung in die Aspektorientierung
- Crosscutting Concerns (Querschnittsbelange) am Beispiel von Logging
- Probleme in OOP: Tangling und Scattering
- Join-Point (Verbindungspunkt)
- Pointcut (Schnittpunkt)
- Advice (Empfehlung)
- AOP als Erweiterung von OOP
- Symmetrischer/Asymmetrischer Ansatz
- Frameworks: AspectJ, JBoss AOP, AspectWerkz, Spring AOP
AspectJ
- AspectJ und der Eclipse-Compiler (Eclipse JDT Core)
- AspectJ über Kommandozeile (
ajc
-Compiler) und Ant - @Aspect-Annotationen
- Eclipse und die AspectJ Development Tools (AJDT)
- Unterstützung von Generics
- invokedynamic-Unterstützung
Join-Points in AspectJ
- Strukturelle und Kontrollflussbezogene Join-Points
call
,execution
, Unterschiede- Setter/Getter Operationen:
get
/set
- Exception-Jandler Join-Point
handler
initialization
,preinitialization
,staticinitialization
- Join Point Modifizierer
- Wildcards in AspectJ
- Operatoren Oder (
||
), Und (&&
) und Nicht (!
) - Signaturen der Typen, Methoden, Ausnahmen
- Kontextzugriff (
thisJoinPoint
,thisJoinPointStaticPart
,getSourceLocation
- Kovarinante Methoden und Join-Point-Matching
Pointcuts in AspectJ
this
,target
,args
- Argumente, Autoboxing und variable Argumentlisten (Varargs)
cflow
,cflowbelow
,withincode
,within
,if
,adviceexecution
- Pointcut Parameter
- Anonyme Pointcuts
Advice und Kontexte
- Advice-Typen: Before-Advice, After-Advice, Around-Advice
- Vorrangregeln bei Advices und zirkuläre Abhängigkeiten
- Intertype Deklarationen
- Aufzählungstypen (Enums).
Technische Realisierung und Metadaten
- Load-Time Weaving
- Runtime-Proxies
AjTypeSystem
- Utility-Klasse
Aspects
undaspectOf
,hasAspect
AspectJ in der Anwendung, Chancen und Risiken
- Aspekte und Zustand
- Konfigurationsmanagement
- Classpath-Fragen
- Aspekte und Wiederverwendbarkeit
- Aspekte und Stabilität
- Dynamische Aktivierung von Aspekten
- Aspekte in Web-Anwendungen und Web-Services
- Optimierungen und Laufzeitprobleme
- Aspekte testen
- Aspekte einführen und Refactoring
- Aspect-oriented software design (ASOD)
- Aspekte in Spring und Spring AOP
ajdoc
: AspectJ-Doc Generator
Termine / Kontakt
Jedes Seminar führt tutego als kundenangepasstes Inhouse-Seminar durch.
Alle unsere Seminare können zudem als Live-Online-Seminar besucht werden.
Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).
Die Fakten
- Empfohlene Schulungsdauer: 2 Tage, insgesamt 16 Unterrichtsstunden à 45 Minuten
- Zielgruppe: Software-Entwickelnde
- Vorkenntnisse: Der Kurs ›Java für Fortgeschrittene‹ oder ›Java für Umsteiger‹.
- Schulungsunterlagen: Deutschsprachige Unterlagen (Kopien der Folien), Zertifikat
- Seminar-Software: Java 21 ist die Standardversion, die in Verbindung mit der IntelliJ IDEA (Community-Edition) verwendet wird. Auf Wunsch auch die Eclipse IDE (Paket ›Eclipse IDE for Enterprise Java Developers‹) oder andere Entwicklungsumgebungen (NetBeans, Oracle JDeveloper) und JDK 8.. Jeweils aktuelle Version von AspectJ, zur Zeit AspectJ 1.9.