2013-05-16 4 views
5

Я связал свои аспекты aspectJ в одном файле War (aspectWar.war) и развернул его на сервере приложений с существующими запущенными приложениями и использовал LTW-переплетение с javaagent на сервере tomcat ,AspectJ LTW всех приложений, развернутых в одном JVM

Я вижу способ перехватывать вызовы аспектов War.war, но не для других приложений, работающих на одном и том же jvm.

Есть ли способ, чтобы мой AspectJ аспекта распознавать и ткать все другие работающие приложения (предпочтительно без необходимости изменять отдельные военные файлы), вероятно, через некоторые изменения пользовательских загрузки классов для сервера приложений ...

Примечание: это использование aspectJ само по себе без интеграции Spring.

Прошу совета.

ответ

2

Ограничение времени загрузки материала на конкретные загрузчики классов - это функция, обеспечиваемая пружиной. Как documentation описывает:

ценностно-добавить, что Spring Framework приносит AspectJ LTW в позволяет гораздо более мелкозернистый контроль над процессом ткачества. «Vanilla» AspectJ LTW осуществляется с использованием агента Java (5+), который включается путем указания аргумента виртуальной машины при запуске JVM. Таким образом, это широкая установка JVM, которая может быть прекрасной в некоторых ситуациях, но часто слишком груба. Spring LTL позволяет включать LTW на основе класса ClassLoader, который, очевидно, более мелкозернистый и может иметь больше смысла в среде с одним JVM-несколькими приложениями (например, в типичном среда сервера приложений).

Извините за длинную цитату, но это в основном ответ на ваш вопрос. Используйте agent provided by AspectJ вместо Spring load time weaving configuration, если вы хотите применить аспекты JVM wide.

+0

Извините, я, должно быть, забыл упомянуть, что я использую агент AspectJ с параметром -javaagent: E: \ workspace \ tomcat6 \ lib \ aspectjweaver-1.7.2.jar. с аспектами аспект (не с аннотациями). ничего особенного нет (ожидайте, что приложения будут управляемыми весной приложениями :)). – Sammy

+0

Возможно, было бы целесообразно поместить ваши аспекты в путь к системе, чтобы они загружались перед другими приложениями. – kriegaex