我有一个外部jar,其中包含一个由我的其他项目使用的方面但我无法在外部jar中调用aspect方法。 当我搜索时,我发现我必须使用加载时间编织来处理我的情况。所以我添加了
<aop:aspectj-autoproxy />
<context:load-time-weaver aspectj-weaving="autodetect"
weaver-class="org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver"/>
在我的应用程序上下文xml文件中,并在外部jar /项目的META-INF中添加了一个aop.xml文件,其中包含以下代码。
<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
<aspectj>
<weaver>
<!-- only weave classes in our application-specific packages -->
<include within="com.mstack.genie.audit.aop.*"/>
</weaver>
<aspects>
<!-- weave in just this aspect -->
<aspect name="com.mstack.genie.audit.aop.AuditAspect"/>
</aspects>
</aspectj>
我还在我的主项目中添加了spring-instrument.jar
。即使在所有这些之后,我也无法从外部jar调用aspect方法。我也看到了同样问题的其他链接,但我的问题仍然没有解决。我使用gradle作为我的构建工具。有人可以帮我解决这个问题吗?