いくつかのインターフェースを実装するクラスがあります。クラスの特定のインターフェイスではなく、クラス全体にポイントカットを追加したいと思います。
Spring AOPでどのように行うことができますか?非インターフェースクラスにアスペクトを適用することは可能ですか?
はい、クラスをプロキシするにはCGLIBを使用する必要があります。春のドキュメントのセクション7.1.3を参照してください
SpringAOPはCGLIBプロキシも使用できます。これは、インターフェースではなく、クラスをプロキシするために必要です。ビジネス・オブジェクトがインターフェースを実装していない場合、デフォルトでCGLIBが使用されます。クラスではなくインターフェイスにプログラムすることをお勧めするため、ビジネスクラスは通常、1つ以上のビジネスインターフェイスを実装します。
魔法は、次の方法でプロキシターゲットクラスを定義することです...
<aop:config proxy-target-class="true">
<!-- other beans defined here... -->
</aop:config>