2012-07-07 4 views
2

Je souhaite utiliser des annotations @cacheable sur des objets qui ne sont pas gérés au printemps. J'utilise le compilateur maven-aspectj pour compléter les classes. Mais je ne vois rien se tissé.cache cache et aspectj

Je n'ai pas un aspect @, car je suppose que le printemps devrait prendre soin de cela pour toutes les annotations liées au cache. J'ai ce qui suit dans mon fichier de configuration.

J'ai fait quelques changements après googler

<cache:annotation-driven mode="aspectj"/> 

<context:annotation-config /> 

<context:component-scan base-package="com.merc.spring.cache.aspectj" /> 

ajouté un aop.xml dans le dossier META-INF avec suivante il

<aspectj> 
<weaver options="-verbose -showWeaveInfo"> 
    <include within="com.merc.spring.cache.aspectj..*"/> 
</weaver> 
</aspectj> 

Répondre

0

Juste pour valider si vos classes @Cacheable sont réellement obtenir tissé avec le CacheAspect, vous pouvez l'ajouter au plugin Aspect maven:

<configuration> 
    <showWeaveInfo>true</showWeaveInfo> 

EDIT

Je suis coller toute ma configuration de plugin AspectJ, cela fonctionne pour moi dans un projet:

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>aspectj-maven-plugin</artifactId> 
      <version>1.4</version> 
      <dependencies> 
       <dependency> 
        <groupId>org.aspectj</groupId> 
        <artifactId>aspectjrt</artifactId> 
        <version>${aspectj.version}</version> 
       </dependency> 
       <dependency> 
        <groupId>org.aspectj</groupId> 
        <artifactId>aspectjtools</artifactId> 
        <version>${aspectj.version}</version> 
       </dependency> 
      </dependencies> 
      <executions> 
       <execution> 
        <goals> 
         <goal>compile</goal> 
         <goal>test-compile</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <outxml>true</outxml> 
       <showWeaveInfo>true</showWeaveInfo> 
       <verbose>true</verbose> 
       <aspectLibraries> 
        <aspectLibrary> 
         <groupId>org.springframework</groupId> 
         <artifactId>spring-aspects</artifactId> 
        </aspectLibrary> 
       </aspectLibraries> 
       <source>${java.version}</source> 
       <target>${java.version}</target> 
      </configuration> 
     </plugin> 

mon java.version, aspectj.version est réglé sur:

<properties> 
    <aspectj.version>1.6.12</aspectj.version> 
    <java.version>1.6</java.version> 
</properties> 
+0

Son déjà présent rien ne se passe – user373201

+0

Oh, d'accord, vous avez des aspects de printemps dans votre chemin de classe non? soit ce qui pourrait être manquant ou la façon dont vous avez configuré le plugin aspectj - il aurait dû fonctionner autrement –