Аспектно-ориентированное программирование на Java

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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
7
0
1 194
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Я бы сказал AspectJ. Часть IDE, насколько мне известно, отсутствует, но документация и выразительность - одни из лучших фреймворков АОП, которые я видел.

Ответ принят как подходящий

JBossAOP и AspectJ - две часто используемые зрелые структуры для АОП. Еще один популярный вариант - Spring AOP, но в нем отсутствуют некоторые функции двух других.

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

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

Если вы уже используете Spring, у управляемых объектов уже есть Поддержка АОП. Хотя он не такой гибкий, как AspectJ, он не требует этапа предварительной компиляции, как AspectJ.

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

Сам пока не проверял, но похоже, что он позволяет использовать АОП и другие объекты (например, ткачество времени загрузки под Tomcat). Подробности - здесь.

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

Другие вопросы по теме