3

いくつかのインターフェースを実装するクラスがあります。クラスの特定のインターフェイスではなく、クラス全体にポイントカットを追加したいと思います。

Spring AOPでどのように行うことができますか?非インターフェースクラスにアスペクトを適用することは可能ですか?

4

1 に答える 1

4

はい、クラスをプロキシするにはCGLIBを使用する必要があります。春のドキュメントのセクション7.1.3を参照してください

SpringAOPはCGLIBプロキシも使用できます。これは、インターフェースではなく、クラスをプロキシするために必要です。ビジネス・オブジェクトがインターフェースを実装していない場合、デフォルトでCGLIBが使用されます。クラスではなくインターフェイスにプログラムすることをお勧めするため、ビジネスクラスは通常、1つ以上のビジネスインターフェイスを実装します。

魔法は、次の方法でプロキシターゲットクラスを定義することです...

<aop:config proxy-target-class="true">
    <!-- other beans defined here... -->
</aop:config>
于 2011-07-07T12:49:39.383 に答える