当前位置: 首页 > 知识库问答 >
问题:

带有AspectJ的Spring AOP-负载时间编织疑点

阮雅达
2023-03-14

阅读Spring AOP文档(链接)时,我很难理解这些段落(可能也是因为英语不是我的母语)。

首先,我读

此外,在某些环境中,这种支持允许加载时编织,而不需要对应用程序服务器的启动脚本进行任何修改,以添加-javaagent:path/to/aspectjweaver.jar或(如我们在本节后面所述)-javaagent:path/to/org.springframework.instrument-{version}.jar(以前命名为spring-agent.jar)。

而且

哪些档案?@aspect类和aop.xml文件?

然后,在同一子章中描述一个例子时,他们说

我们还有最后一件事要做。本节的介绍确实说过,可以在Spring的每个classloader基础上有选择地打开LTW,这是事实。然而,对于本例,我们使用Java代理(随Spring提供)来打开LTW。我们使用以下命令运行前面显示的Main类:

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

如果我@enableLoadTimeWeaving,我是否需要Spring-InstrumentJar文件作为Java代理
我想答案是肯定的,因为我们需要在加载Class文件之前向它添加字节码。但如能确认将不胜感激。

Jar的命名有点模棱两可,首先他们提到spring-agent.Jar,然后他们使用org.springframework.instrument-{version}.Jar,然后是spring-instrument.Jar
我们总是在谈论同一个Jar文件吗?

共有1个答案

仉梓
2023-03-14

我从你问的另一个问题看出,你正在使用Spring Boot运行一个胖罐子。在这种情况下,您不需要@enableLoadTimeWeavingspring-instrument(以前称为spring-agent)。如果您不是在不控制代理路径的appserver中运行,请忽略它们。

我为您打开了一个关于文档中混淆的问题:https://github.com/spring-projects/spring-framework/issues/22429。

 类似资料: