Есть ли способ включить изменение времени загрузки в AspectJ без передачи java аргументов агента JVM? - PullRequest
0 голосов
/ 27 мая 2020

У меня есть требование использовать переплетение времени загрузки в AspectJ в приложении Spring, из того, что я вижу в разных источниках, это то, что вы должны передать аргумент javaagent вашей JVM для включения переплетения времени загрузки.

ie

-javaagent:path/to/spring-aop-aspectj-ltw/spring-instrument-4.2.5.RELEASE.jar
-javaagent:path/to/spring-aop-aspectj-ltw/aspectjweaver-1.8.8.jar

Мне интересно, есть ли альтернативный способ инициализировать это в приложениях Spring?

PS Я использую Gradle для сборки проекта

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Используйте следующее в аннотированном классе @Configuration.

@EnableLoadTimeWeaving(aspectjWeaving=ENABLED)
0 голосов
/ 28 мая 2020

Наверное, нет. Вам нужны агенты, чтобы фактически облегчить переплетение перед загрузкой любого из классов вашего приложения, так как они должны быть переписаны. Я думаю, что конфигурация @EnableLoadtimeWeaving предназначена только для того, чтобы сообщить CGLIB не создавать прокси-классы для вашего аннотированного кода, потому что в этом больше нет необходимости. Но я не уверен на 100% в этой последней части tbh; с таким же успехом он мог бы сказать агентам, чтобы они действительно переплели код, когда они находят его во время сканирования пути к классам.

И не забудьте настроить свой aop. xml в каталоге META-INF!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...