Spring 3のドキュメントから、AOPには2つの方法があることがわかります
AspectJ -
<aop:config>
xml にメタデータを含めるか、注釈を使用する@Aspect
Spring 独自の実装 - アドバイス用のインターフェースを使用しています (
BeforeAdvice
などAfterAdvice
)
-- 今まで間違っていたら訂正してください --
これで、 Spring 独自の実装がAutoproxyCreator
( BeanNameAutoproxyCreator
, DefaultAdvisorAutoproxyCreator
) によって実装され、Bean 作成時にBeanPostProcessor
.
しかし、AspectJ のプロキシが Spring でどのように行われるか@Aspect
。
<aop:config>
<aop:aspect ref= "anyclasshavingAllAdviceMethod">
<!-- (all aop:before,aop:after-throwing etc) -->
</aop:aspect>
</aop:config>
プロキシの作成に使用されます。<aop:config>
またはの実装の背後にあるメカニズムは何ですか@Aspect
。
または、ロード時のウェーバーがこれらに使用されます。
注: aop:config を実装するために、追加の Bean や load-time-weaver を提供する必要はありません。