AspectJ is a language for
aspect oriented programming with
Java. There are at least two implementations of the language: ajc (fully integrated with Eclipse), and abc (an optimising, extensible workbench for research into aspect-oriented programming languages).
See also