AspectJ является аспектно-ориентированное расширение созданной в Xerox PARC для языка программирования Java. Она доступна в Eclipse Foundation проектов с открытым кодом, как отдельно, так и интегрирован в Eclipse. AspectJ стала широко используемый стандарт де-факто для АОП, подчеркивая простоту и удобство использования для конечных пользователей. Он использует Java-подобный синтаксис и включил IDE интеграции для отображения сквозных структуры с момента ее первоначального публичного выпуска в 2001 году.
Простое описание языка
Все действующие программы Java справедливые программы AspectJ, но AspectJ также позволяет программистам определить специальные конструкции, называемые аспектами. Аспекты могут содержать несколько сущностей не присутствующих в стандартных классах:
-
inter-type declarations позволяют добавлять методы, поля, или интерфейсы для существующих классов внутри аспект
-
pointcut - позволяют программисту указать точки соединения (четко определенные моменты в выполнении программы, как вызов метода, объекта экземпляра, или доступа к переменным). Все pointcuts являются выражениями для определения точки пересечения. Выражение пришло из кино - когда две (или более) сюжетные линии развиваются независимо но в некоторые моменты пересекаются - это усиливает драматический эффект.
-
advice позволяет программисту указать код для запуска на точку пересечения (pointcut).