クラス ReflectiveLoadTimeWeaver
java.lang.ObjectSE
org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver
- 実装されているすべてのインターフェース:
LoadTimeWeaver
よく知られている変換フックを使用して、基になる ClassLoader に委譲するためにリフレクションを使用する
LoadTimeWeaver。基になる ClassLoader は、次のウィービングメソッド(LoadTimeWeaver インターフェースで定義されている)をサポートすることが期待されています。public void addTransformer(java.lang.instrument.ClassFileTransformer): この ClassLoader に指定された ClassFileTransformer を登録するためpublic ClassLoader getThrowawayClassLoader(): この ClassLoader の使い捨てクラスローダーを取得するため (オプション ; ReflectiveLoadTimeWeaver は、その方法が利用できない場合、SimpleThrowawayClassLoader にフォールバックします)
上記のメソッドは、パブリックにアクセス可能なクラスに存在する必要があることに注意してください。ただし、クラス自体はアプリケーションのクラスローダーから見える必要はありません。
この LoadTimeWeaver のリフレクティブな性質は、基になる ClassLoader 実装が別のクラスローダー自体(アプリケーションサーバーのクラスローダーなど、Web アプリケーションからは見えない)にロードされている場合に特に役立ちます。この LoadTimeWeaver アダプターと基になる ClassLoader の間に直接の API 依存関係はなく、単に「緩い」メソッド契約です。
- 導入:
- 2.0
- 作成者:
- Costin Leau, Juergen Hoeller
- 関連事項:
コンストラクターの概要
コンストラクターコンストラクター説明現在のコンテキストクラスローダー用の新しい ReflectiveLoadTimeWeaver を作成します。 これは、必要なウィービングメソッドをサポートする必要があります。ReflectiveLoadTimeWeaver(ClassLoaderSE classLoader) 指定されたクラスローダーの新しい SimpleLoadTimeWeaver を作成します。メソッドのサマリー
修飾子と型メソッド説明voidaddTransformer(ClassFileTransformerSE transformer) このLoadTimeWeaverによって適用されるClassFileTransformerを追加します。ユーザー定義のClassFileTransformersSE に基づいて、AspectJ スタイルのロード時間ウィービングによる計測をサポートするClassLoaderを返します。使い捨てClassLoaderを返します。これにより、親ClassLoaderに影響を与えることなくクラスをロードおよびインスペクションできます。
コンストラクターの詳細
ReflectiveLoadTimeWeaver
public ReflectiveLoadTimeWeaver()現在のコンテキストクラスローダー用の新しい ReflectiveLoadTimeWeaver を作成します。 これは、必要なウィービングメソッドをサポートする必要があります。ReflectiveLoadTimeWeaver
指定されたクラスローダーの新しい SimpleLoadTimeWeaver を作成します。- パラメーター:
classLoader- ウィービングのために委譲するClassLoader( 必要な織り方をサポートする必要があります)- 例外:
IllegalStateExceptionSE- 提供されたClassLoaderが必要なウィービング方法をサポートしていない場合
メソッドの詳細
addTransformer
インターフェースからコピーされた説明:LoadTimeWeaverこのLoadTimeWeaverによって適用されるClassFileTransformerを追加します。- 次で指定:
- インターフェース
LoadTimeWeaverのaddTransformer - パラメーター:
transformer- 追加するClassFileTransformer
getInstrumentableClassLoader
インターフェースからコピーされた説明:LoadTimeWeaverユーザー定義のClassFileTransformersSE に基づいて、AspectJ スタイルのロード時間ウィービングによる計測をサポートするClassLoaderを返します。現在の
ClassLoaderか、このLoadTimeWeaverインスタンスによって作成されたClassLoaderの可能性があります。- 次で指定:
- インターフェース
LoadTimeWeaverのgetInstrumentableClassLoader - 戻り値:
- 登録されたトランスフォーマーに従ってインスツルメントされたクラスを公開する
ClassLoader
getThrowawayClassLoader
インターフェースからコピーされた説明:LoadTimeWeaver使い捨てClassLoaderを返します。これにより、親ClassLoaderに影響を与えることなくクラスをロードおよびインスペクションできます。LoadTimeWeaver.getInstrumentableClassLoader()の呼び出しから返されたClassLoaderSE の同じインスタンスを返さないでください。- 次で指定:
- インターフェース
LoadTimeWeaverのgetThrowawayClassLoader - 戻り値:
- 一時的な使い捨て
ClassLoader; 既存の状態なしで、呼び出しごとに新しいインスタンスを返す必要があります