web-dev-qa-db-ja.com

Spring FrameworkのCGLIBとは何ですか?

CGLIBとは何ですか、それはどのようにSpringと関連していますか? Spring Frameworkを使用する場合、CGLIBの使用を明示的に定義する必要がありますか?

21
Punter Vicky

Ref Spring docs 。 CGLIBとは何ですか?CGLIBはSpringとどのように関連していますか?

CGLIBはコード生成ライブラリです。 SpringはCGLIBを使用してプロキシを生成します。

Spring AOPはデフォルトでAOPプロキシに標準のJDK動的プロキシを使用します。これにより、任意のインターフェース(またはインターフェースのセット)をプロキシできます。

はい、CGLIBベースのプロキシを明示的に使用するようにSpringに指示する必要があります。

Xmlを使用:

<aop:aspectj-autoproxy proxy-target-class="true"/>proxy-target-classプロパティをtrueに設定すると、CGLIBベースのプロキシが有効になります。

注釈を通じて:

@Configuration
@EnableAspectJAutoProxy(proxyTargetClass=true)
public class AppConfig {
   // ...
}

クラスパスにCGLIBを追加する必要はありません。 Spring 3.2の時点で、CGLIBは再パッケージ化され、spring-core JARに含まれています。

this もご覧ください。

25
Lovababu