我想在不受spring管理的对象上使用@cacheable注释。我正在使用maven-aspectj编译器来编译类。但我没有看到任何编织。
我没有@ Aspect,因为我假设spring应该为所有缓存相关的注释处理这个问题。我的配置文件中有以下内容。
我在谷歌搜索后做了几次改动
<cache:annotation-driven mode="aspectj"/>
<context:annotation-config />
<context:component-scan base-package="com.merc.spring.cache.aspectj" />
在META-INF文件夹中添加了aop.xml,其中包含以下内容
<aspectj>
<weaver options="-verbose -showWeaveInfo">
<include within="com.merc.spring.cache.aspectj..*"/>
</weaver>
</aspectj>
答案 0 :(得分:0)
只是为了验证您的@Cacheable类是否实际上已经使用CacheAspect编织,您可以将其添加到maven aspectj插件:
<configuration>
<showWeaveInfo>true</showWeaveInfo>
编辑
我正在粘贴我的整个aspectj插件配置,这适用于我的项目:
<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>
我的java.version,aspectj.version设置为:
<properties>
<aspectj.version>1.6.12</aspectj.version>
<java.version>1.6</java.version>
</properties>