AspectJ
Aspect-Oriented Programming-tillägg till Java. Xerox PARC, Gregor Kiczales m.fl., 2001. Definiera "aspects" som korsskär normal kod (logging, transaktioner, säkerhet).
Pointcuts (vart) + Advice (vad). Compile-time eller load-time weaving. Spring AOP är minimal subset (bara method-execution pointcuts). AOP-hypen var stor 2003-2008, har klingat av — många use cases ersatts av dekoratorer/decorators (Python @decorator, JS), middleware-pipelines, eller helt enkelt regular composition. Lever fortfarande i Spring transaktionshantering och Java logging-frameworks.