我查看了很多关于web的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/>
答案 0 :(得分:3)
AspectJ不需要Spring。您可以在应用程序中使用aspectJ,并从AOP范例中受益。
Spring让事情变得容易一些,提供了轻松执行加载时间编织的工具,检测Sun的GlassFish,Oracle的OC4J,Spring的VM代理以及Spring支持的任何ClassLoader&#39 ; s ReflectiveLoadTimeWeaver。
例如,在Tomcat的情况下,Spring提供了TomcatInstrumentableClassLoader,它将加载类的工具添加到了,而无需使用VM范围的代理。
另一方面,spring提供了aspectJ集成,超出了你的问题的范围。但基本上允许您以多种方式处理非托管的spring bean(依赖注入,事务......)。