繁体   English   中英

使用Spring AOP配置XML的Aspectj

[英]Aspectj with spring aop configuration xml

我正在使用使用Spring 3.1.1版的应用程序,现在需要在其中添加一些方面。 方面以Aspectj语言编写,没有注释。 我已经阅读了春季文档8.8章 ,但是我正在努力使其工作。

我的弹簧配置如下:

<aop:aspectj-autoproxy proxy-target-class="true">
  <aop:include name="loggerAspect"/>
</aop:aspectj-autoproxy>

<aop:config>
  <!-- Beans -->
  <aop:aspect id="loggerAspect" ref="loggerAspectBean">
    <!-- Pointcuts -->
    <aop:pointcut id="loggerPointcut" expression="execution(* foo.Bar.baz(..))"/>
    <!-- Advice -->
    <aop:around method="log" pointcut-ref="loggerPointcut"/>
  </aop:aspect>
</aop:config>

<bean id="loggerAspectBean" class="foo.LoggerAspect"></bean>

在我的pom中,是一个Maven项目,我将spring-aop,aspectjrt和Aspectjweaver作为依赖项。

我的问题是,启动应用程序时,我得到foo.LoggerAspectClassNotFoundException ,这是可以理解的,因为foo.LoggerAspectfoo.LoggerAspect方面,而不是Java类。

所以我的问题是:

  • 我应该如何配置Spring,以便它使用以.aj文件编写的.aj方面?

这里是不可能的注释,方面是给定的,不能修改它们,需要通过XML保留配置。

好的简单解决方案,只需使用ajc编译器编译aj文件,您将获得一个类文件(如果您为LTW进行编译),然后找到该类。 并添加<context:load-time-weaver aspectj-weaving="on"/>完成其余工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM