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

时间:2015-06-08 15:32:42

标签: java spring aspectj

我查看了很多关于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/>

1 个答案:

答案 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(依赖注入,事务......)。