如果可以单独使用 aspectj,那么在 Spring 配置中使用 Aspectj 有什么好处

What are benefits of using Aspectj in Spring config, if aspectj can be used alone

我在网上看了很多 Aspectj 教程,其中大部分是: 使用 Spring 个 bean 的 Aspectj 配置。根据我的理解,如果我使用

javaagent:./src/main/resources/aspectjweaver.jar 和 如果我创建了 aop.xml,aspectj 编织将适用于所有 类 和对象(包括由 Spring 管理的对象)。

为什么我需要在 Spring 中启用编织? (比如 this tutorial)。这样做有什么好处:

<!-- this switches on the load-time weaving -->
    <context:load-time-weaver/>

AspectJ 不需要 Spring。您可以在您的应用程序中使用 aspectJ 并从 AOP 范式中获益。

Spring 提供检测 Sun 的 GlassFish、Oracle 的 OC4J、Spring 的 VM 代理和 [=21 支持的任何 ClassLoader 的工具,使事情变得更容易一些=]的ReflectiveLoadTimeWeaver.

例如,在 Tomcat 的情况下,Spring 提供 TomcatInstrumentableClassLoader,它向加载的 类 添加检测,而无需使用 VM -全代理.

另一方面,spring 提供了超出您问题范围的 aspectJ 集成。但基本上允许您以多种方式处理非托管 spring bean(依赖注入、事务...)。