AspectJ
# AspectJ

AspectJ ist eine aspekt-orientierte Erweiterung von Java, welche bei Xerox PARC entwickelt wurde und nun ein Open-Source-Projekt der Eclipse Foundation ist. Es ist als alleinstehendes Programm und als Eclipse-Zusatzmodul verfügbar.
Ein AspectJ-Compiler bindet Aspekte in normalen Java-Bytecode ein, um das Ereignis-basierte System zu implementieren. Aspekte sind in einer Kombination von Java und AspectJ geschrieben und durch eine zusätzliche Vor-Klasse in Java eingebunden, um Standard-Java-Bytecode erzeugen zu können und so AspectJ mit Java kompatibel zu machen.
Im Moment gibt es zwei AspectJ-Compiler: ajc, welcher ein Teil des Eclipse-AspectJ-Projektes ist und abc, ein erweiterbarer optimierender Compiler, welcher von aspectbench.org erstellt wurde. AspectJ wurde auch auf andere Programmiersprachen portiert, etwa auf Common Lisp (AspectL) und Ruby (AspectR). In diesen beiden Portierungen ist kein spezieller Compiler nötig; die Aspekte können in das existierende Objekt-basierte System einprogrammiert werden.
Das Programmierframework Spring bietet eine gute Unterstützung für AspectJ.