Der Aspektweber, Aspect Weaver, fügt Aspekt- und Komponentencode an den Verbindungspunkten zusammen. Ein Aspektweber kann zu unterschiedlichen Zeitpunkten weben, z.B. zur Übersetzungszeit, Ladezeit oder Laufzeit. Demnach werden auch verschiedene Typen von Aspektwebern unterschieden.
Aspektweber (Aspect Weaver) werden im Zusammenhang mit aspektorientierter Programmierung (AOP) verwendet. Die Aufgabe eines Aspektwebers ist es, den Programmcode oder auch Bytecode mit dem Aspekt-Code an den definierten Verwebungspunkten - den Join Points - zu verweben. Dabei werden die folgenden Typen von Aspektwebern unterschieden:
Man differenziert diesbezüglich in statische Weber (Quellcode- und Bytecode-Weber) und dynamische Weber (Ladezeit- und Laufzeit-Weber).
Die statischen Aspektweber verweben also den funktionalen Programmcode mit dem Aspekt-Code vor bzw. nach der Compilierung des Programmcodes. Beispiele für statische Aspektweber sind: AspectJ, AspectBench-Compiler, AspectC#, AspectC++ oder HyperJ.
Bei dynamischen Aspektwebern wird der Aspekt-Code mit funktionalem Bytecode dynamisch zur Laufzeit verwoben. Dabei sind genaueste Informationen über die zu verwebenden Objekte und die Aspekte erforderlich. Nach der Verwebung an den zuvor definierten Verwebungspunkten (Join Points) sind die Aspekte Teil der Objekte. Zu dieser Form von dynamischer Verwebung der Aspekte existieren die folgenden vier Ansätze:
Beispiele für dynamische Aspektweber sind:Rapier-LOOM. NET für das .NET-Framework, AspectS - aspektorientierte Programmierung (AOP) mit Squeak, JBoss Aspect Oriented Programming, Java Aspect Components, JMangler und JMunger. Besonders interessant ist dabei das JBoss AOP-Framework, das die Entwicklung von aspektorientierten Lösungen für Java unterstützt. Dabei lässt sich dieses Framework direkt in den JBoss Application Server integrieren oder auch isoliert nutzen, indem das Framework dazu die benötigten Klassen zur Verfügung stellt. Weiterhin orientiert sich JBoss an den allgemein gültigen Konzepten der aspektorientierten Programmierung (AOP)