Spring AOP с AspectJ - сомнения по времени загрузки - PullRequest
0 голосов
/ 18 февраля 2019

Читая документацию Spring AOP ( ссылка ), я испытываю трудности (возможно, также из-за того, что английский не является моим родным языком), понимая эти абзацы.

Во-первых, яread

Кроме того, в некоторых средах эта поддержка позволяет выполнять ткачество во время загрузки без внесения каких-либо изменений в сценарий запуска сервера приложений, который необходим для добавления -javaagent:path/to/aspectjweaver.jar или (как мы опишем ниже в этом разделе).) -javaagent:path/to/org.springframework.instrument-{version}.jar (ранее назывался spring-agent.jar).

И

Разработчики изменяют один или несколько файлов, которые формируют контекст приложения, для включения процесса загрузки во время загрузки

Какие файлы?@Aspect классов и aop.xml файлов?


Затем, описывая пример в том же подразделе, они говорят:

У нас есть еще одно, что нужно сделать,Во введении к этому разделу говорилось, что с помощью Spring можно выборочно включить LTW на основе ClassLoader, и это действительно так. Однако для этого примера мы используем агент Java (поставляется с Spring) для включения LTW.Мы используем следующую команду для запуска класса Main, показанного ранее:

И они применяют Java Agent к JVM.

-javaagent:C:/projects/foo/lib/global/spring-instrument.jar

Теперь у меня есть парасомнений.

Если я @EnableLoadTimeWeaving, нужен ли мне файл spring-instrument Jar как Java Agent?
Полагаю, ответ - да, потому что нам нужно добавить байт-код кclass файл перед загрузкой.Но подтверждение было бы очень полезно.

Название Jar - это немного двусмысленно, сначала они упоминают spring-agent.jar, затем они используют org.springframework.instrument-{version}.jar, а затем spring-instrument.jar.
Мы всегда говорим отот же файл Jar?

1 Ответ

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

Я вижу из другого вопроса, который вы задали, что вы используете Spring Boot и запускаете толстую банку.В этом случае вам не нужны @EnableLoadTimeWeaving или spring-instrument (ранее известные как spring-agent).Просто игнорируйте их, если вы не работаете на сервере приложений, для которого вы не контролируете путь агента.

Я открыл для вас вопрос о путанице в документах: https://github.com/spring-projects/spring-framework/issues/22429.

...