を有効にします。これは、この質問から続く:春AOPを使用している場合は春AOPまたはAspectJの
Spring autowired bean for @Aspect aspect is null
私の最初の理解は、@Aspectでアノテートクラスは春マネージドBeanとして作成されたことを、とても依存性注入通常どおりに動作します。
<bean id="aspect" class="com.mysite.aspect" factory-method="aspectOf" />
この:しかし、春がBeanを管理するようので、私はそれを有効にするためにそのようなXMLでそれを設定する必要が、@Aspect注釈付きオブジェクトは、スプリングコンテナ外シングルトンとして作成されているようです今私は完全に私を混乱させた。だから、アスペクトBeanを作成コンポーネント・スキャンを使用して@Aspectの注釈をスキャンう
<context:component-scan base-package="com.mysite.aspectPackage"/>
<aop:aspectj-autoproxy/>
、その後、自動プロキシが適切に私のコンテキスト内のすべてのBeanをプロキシbeanPostProcessorを作成します。私は、以下の構成は、スプリングAOPを使用するだろうと思いました助言。私はaspectJを有効にすることを考えました。まったく別のXML設定が必要です(これはまれにドキュメントの例が見つからないようです)。アスペクトを使用してコンテナの外にあるか、プロキシではなくバイトコードを操作するアスペクトを作成するのはこの設定です。
私はこれを春4.3で試してみました。@Bozhoが答えて書いたように、 '@ Aspect'' @ Component'でアスペクトに注釈を付けると、DIでも完璧にうまく動作します – csharpfolk