アスペクトを作成しましたが、動作していないようです。ログに何も表示されません。アスペクトを実行時に実行しない(Spring 3、AspectJ)
リポジトリは、SpringによってAutowiredを別のBeanに取得します。これは、コンポーネントスキャンが機能するように機能します。アスペクトはスキャン中のパッケージ内にあります。私はclasspathにaspectjを持っています。
アスペクト比:
@Aspect
@Component
public class LoggingAspect {
private static Logger logger = Logger.getLogger(LoggingAspect.class);
@Before("execution(* nl.bar.repository.*.*(..))")
public void logIt(JoinPoint joinPoint) {
logger.debug("WE'RE LOGGING IT!!!!");
}
}
スプリングビーン:
package nl.bar.repository
@Component
public class BarRepository {
public List<Bar> findBar() {
....
}
}
のApplicationContext:
<context:annotation-config />
<context:component-scan base-package="nl.bar" />
<aop:aspectj-autoproxy/>
のMaven:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.6.11</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.11</version>
</dependency>