Java - Почему aspectj требует установки плагина? - PullRequest
2 голосов
/ 05 декабря 2011

Итак, я пытаюсь использовать AOP в своем приложении для регистрации и обработки ошибок. Большинство людей рекомендуют использовать aspectj, поэтому мой вопрос заключается в том, почему аспектj требует, чтобы я установил плагин eclipse, чтобы иметь возможность его использовать? Разве aspectj не использует просто отражение для изменения классов во время выполнения?

Мы также используем сервер сборки, нужно ли что-либо устанавливать на сервер сборки, чтобы запустить проект с использованием aspectj?

Ответы [ 4 ]

4 голосов
/ 05 декабря 2011

Нет, если только вы не хотите, чтобы Eclipse учитывал аспекты и включал функциональность AspectJ в свой внутренний процесс сборки.(Поддержка IMO IDE для AOP великолепна и значительно облегчает работу с AOP. Одна маркировка желоба стоит своей цены.)

AspectJ изменяет байт-код;вы не можете делать то, что он делает с помощью чистого отражения,

Вашему серверу сборки нужны соответствующие библиотеки.Если вы делаете ткачество во время компиляции, это нужно добавить в скрипт сборки.

2 голосов
/ 05 декабря 2011

Aspect-J использует агент для изменения классов путем так называемого ткачества во время загрузки. Это необходимо, поскольку java-прокси могут работать только с интерфейсами. Агент дополняет классы дополнительным (байтовым) кодом.

РЕДАКТИРОВАТЬ: плагины обычно предоставляют дополнительные функции для определения и просмотра срезов точек и точек соединения .

1 голос
/ 05 декабря 2011

Нет, вам не требуется плагин для компиляции / запуска кода, написанного с использованием AOP.

Скорее, вам нужно добавить информацию о пути к классам при компиляции / запуске приложения.

Например, вы можете посмотреть здесь . Он добавляет jar aspectj, используя ant для запуска примера. И он не нуждается в плагине для запуска кода AspectJ.

О плагине и eclipse: Речь идет о том, чтобы дать идею Eclipse понять код AspectJ, а не путать его с неверным кодом Java.

0 голосов
/ 19 февраля 2012

Если у вас есть проект Maven, вам просто нужно установить некоторые зависимости для работы с Aspect.Я работаю с Netbeans и использую AspectJ, и он работает отлично.Нет плагина для установки.

См. http://mojo.codehaus.org/aspectj-maven-plugin/ для получения дополнительной информации.

...