私はこのチュートリアルで勉強している Spring Framework の AOP を学んでいます: http://www.tutorialspoint.com/spring/schema_based_aop_appoach.htm
前のチュートリアルとは異なり、必要な jar ファイルを手動で追加するのではなく、Maven を使用しています。
最初に、この依存関係を pom.xml に追加しました (spring-core、spring-bean、spring-context、spring-context-support Spring モジュールに関連するものに加えて)
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
しかし、この方法では機能せず、次の例外が発生します。
原因: java.lang.ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException
オンラインで読むと解決策が見つかりました: pom.xml に次の 2 つの依存関係を追加する必要があります。
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2</version>
</dependency>
だから今、私は2つの疑問があります:
まだorg.springframework.spring-aopがあるのに、なぜこのorg.aspectj.aspectjtools依存関係を追加しなければならないのですか? (また... org.springframework.spring-aop を削除できることに気付きました。これは使用されていません) それらの違いは何ですか?
cglibの依存関係を追加する必要があるのはなぜですか? @Configuration や @Bean などのアノテーションを使用するときに cglib を使用する必要があることはわかっていますが、これらのアノテーションがないこの場合、なぜこの依存関係が必要なのですか?
Tnx アンドレア