2016-07-18 22 views
1

ich die Linie <context:load-time-weaver/> meiner anwendungs ​​context.xml hinzugefügt haben,@AspectJ Aspekte in der Anwendung nicht gewoben werden, die Spring verwendet

und haben eine META-INF\aop.xml Datei mit folgendem geschaffen:

<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd"> 
<aspectj> 

    <weaver options="-verbose"> 
     <!-- only weave classes in our application-specific packages --> 
     <include within="com.xxx.aspectj.*"/> 
    </weaver> 

    <aspects> 
     <aspect name="com.xxx.aspectj.StandardAspect"/> 
    </aspects> 

</aspectj> 

Mit dem Aspekt inklusive einer Catch-All, um einfach zu sehen, ob es überhaupt funktioniert:

@After("call (public * *(..))") 
public void interceptEverything() { 
    System.out.println("Hello"); 
} 

Aber nichts scheint zu passieren, ein y Ideen?

Antwort

0

Das Entfernen des include within Tags löste mein Problem.

Ich erkannte, dass ich das include within Tag falsch interpretiert habe, ich dachte, es hatte nur weben Aspekte in der Liste aufgeführt, aber es bedeutete nur weben Aspekte in Klassen in der Liste aufgeführt.