AOP プロキシ
Spring AOP は、デフォルトで AOP プロキシに標準 JDK 動的プロキシを使用します。これにより、任意のインターフェース(またはインターフェースのセット)をプロキシできます。
Spring AOP は CGLIB プロキシも使用できます。これは、インターフェースではなくクラスをプロキシするために必要です。ビジネスオブジェクトがインターフェースを実装していない場合、デフォルトでは CGLIB が使用されます。クラスではなくインターフェースに対してプログラミングすることをお勧めします。通常、ビジネスクラスは 1 つ以上のビジネスインターフェースを実装します。インターフェース上で宣言されていないメソッドをアドバイスする必要がある場合や、プロキシされたオブジェクトを具象型としてメソッドに渡す必要がある場合(まれであることが望ましいですが) 、CGLIB の使用を強制することができます。
Spring AOP はプロキシベースであるという事実を理解することが重要です。この実装の詳細が実際に何を意味するかを正確に調べるには、AOP プロキシについてを参照してください。