ProxyFactory を使用したプログラムによる AOP プロキシの作成

Spring を使用すると、プログラムで AOP プロキシを簡単に作成できます。これにより、Spring IoC に依存せずに Spring AOP を使用できます。

ターゲットオブジェクトによって実装されたインターフェースは自動的にプロキシされます。次のリストは、1 つのインターセプターと 1 つのアドバイザーを使用した、ターゲットオブジェクトのプロキシの作成を示しています。

  • Java

  • Kotlin

ProxyFactory factory = new ProxyFactory(myBusinessInterfaceImpl);
factory.addAdvice(myMethodInterceptor);
factory.addAdvisor(myAdvisor);
MyBusinessInterface tb = (MyBusinessInterface) factory.getProxy();
val factory = ProxyFactory(myBusinessInterfaceImpl)
factory.addAdvice(myMethodInterceptor)
factory.addAdvisor(myAdvisor)
val tb = factory.proxy as MyBusinessInterface

最初のステップは、型 org.springframework.aop.framework.ProxyFactory のオブジェクトを作成することです。前の例のように、ターゲットオブジェクトを使用してこれを作成するか、代替コンストラクターでプロキシするインターフェースを指定できます。

アドバイス (特殊な種類のアドバイスとしてのインターセプターを使用)、アドバイザー、その両方を追加して、ProxyFactory の存続期間中、操作できます。IntroductionInterceptionAroundAdvisor を追加すると、プロキシに追加のインターフェースを実装させることができます。

また、ProxyFactory (AdvisedSupport から継承)には、before や throws アドバイスなど、他のアドバイス型を追加できる便利なメソッドがあります。AdvisedSupport は、ProxyFactory と ProxyFactoryBean の両方のスーパークラスです。

AOP プロキシ作成を IoC フレームワークと統合することは、ほとんどのアプリケーションのベストプラクティスです。通常は、AOP を使用して Java コードから設定を外部化することをお勧めします。