Аспектно-ориентированное программирование на Java - PullRequest
7 голосов
/ 28 ноября 2008

Какой инструмент Java лучше всего подходит для аспектно-ориентированного программирования?

Требования к инструменту - это, конечно, поддержка IDE, выразительность и правильная документация.

Ответы [ 5 ]

6 голосов
/ 28 ноября 2008

JBossAOP и AspectJ - две широко используемые зрелые платформы для AOP. Другой популярный выбор - Spring AOP, но в нем отсутствуют некоторые функции двух других.

И JBossAOP, и AspectJ имеют схожие функции, одно большое отличие состоит в том, что AspectJ опирается на расширения языка Java, а JBoss AOP - нет.

Если ваши требования к AOP довольно просты, также стоит рассмотреть библиотеку манипулирования байт-кодом, такую ​​как ASM . Я использовал ASM для реализации простых «рекомендаций по всему» (т. Е. Кода, который вводится до и после вызова методов), и он оказался более легкой альтернативой JBossAOP. ASM четко спроектирован и хорошо документирован.

3 голосов
/ 28 ноября 2008

Я бы сказал AspectJ. Часть IDE, насколько мне известно, отсутствует, но документация и выразительность являются одними из лучших платформ AOP, которые я видел.

2 голосов
/ 28 ноября 2008

Если вы уже используете Spring, управляемые объекты уже имеют AOP поддержку . Хотя он и не такой гибкий, как AspectJ, он не требует шага предварительной компиляции, который делает AspectJ.

0 голосов
/ 07 февраля 2013

АОП с пружинным паром по этой ссылке http://rajkrrsingh.blogspot.com/2012/10/spring-aop-tutorial.html

0 голосов
/ 28 ноября 2008

Что касается поддержки Spring AOP. По умолчанию это относится только к управляемым объектам Spring и AFAIK это основано на AspectJ.

Я еще не проверял это сам, но похоже, что он позволяет использовать AOP и другие объекты (например, ткачество времени загрузки под Tomcat). Подробности здесь .

...