AspectJ
Javaへのアスペクト指向プログラミング拡張。2001年、Xerox PARCのGregor Kiczalesらによる。ログ、トランザクション、セキュリティのような横断的関心事を「アスペクト」として定義する。
ポイントカット(どこに)とアドバイス(何を)で構成される。ウィービングはコンパイル時またはロード時に行う。Spring AOPはその最小限のサブセットで、メソッド実行のポイントカットしか扱えない。AOPの流行は2003〜2008年が頂点で、その後は下火になった。多くの用途は、デコレータ(Pythonの@decorator、JS)、ミドルウェアのパイプライン、あるいは普通の合成に置き換えられた。いまもSpringのトランザクション処理やJavaのログフレームワークの中に生きている。