Необходима помощь Spring Source Tool

я применяю AspectJ в исходном инструменте Spring

мне нужно настроить время загрузки или скомпилировать плетение в исходном инструменте Spring

Я буду очень рад, если кто-нибудь предоставит подробную информацию об использовании AspectJ для применения Aspect в Spring Source Tool.


person Vish    schedule 04.05.2011    source источник


Ответы (1)


Это очень сложная тема, выходящая далеко за рамки одного вопроса StackOverflow.

В основном:

  • Самый простой случай — это Spring AOP, где вы вообще не используете AspectJ, а создаете прокси-серверы Java из аннотаций AspectJ. Это также наименее мощный вариант. Поддерживается только несколько pointcut, а целями должны быть Spring Beans.
  • Наиболее мощным вариантом является статическая компиляция AspectJ, которую вы обычно интегрируете в свою систему сборки (отлично работает с ant или maven). Ваши файлы классов фактически изменены, чтобы включить аспекты. Это называется плетением во время компиляции.
  • Плетение во время загрузки находится где-то посередине. Вы хотите посоветовать код, но не хотите изменять файлы классов, поэтому вы «советуете загрузчик классов» (это неадекватное определение, но оно дает вам представление). Плетение во время загрузки также обычно является вашим единственным выбором, если вы хотите добавить аспекты в код сторонней библиотеки.

Чтобы понять все тонкие различия.

В любом случае настройки, которые вы используете в STS, должны отражать настройки вашей системы сборки. Раздел 7. Аспектно-ориентированное программирование с помощью Spring из справочника Spring также очень полезно.

person Sean Patrick Floyd    schedule 04.05.2011
comment
спасибо, Шон ... я столкнулся со странной ошибкой ExceptionInInitializerError: NullPointerException для bean-компонентов, которые рекомендует AspectJ. Эти bean-компоненты не инициализируются, когда контекст пытается инициализировать ... надеюсь, вы сможете ответить на мой запрос. проблема в другой ссылке ссылка - person Vish; 04.05.2011
comment
@Vish, да, я знаю. Разместите там свой код аспекта, и я постараюсь вам помочь - person Sean Patrick Floyd; 04.05.2011