クラス 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 を作成します。方法の概要
修飾子と型メソッド説明void
addTransformer
(ClassFileTransformerSE transformer) このLoadTimeWeaver
によって適用されるClassFileTransformer
を追加します。ユーザー定義のClassFileTransformers
SE に基づいて、AspectJ スタイルのロード時間ウィービングによる計測をサポートするClassLoader
を返します。使い捨てClassLoader
を返します。これにより、親ClassLoader
に影響を与えることなくクラスをロードおよびインスペクションできます。
コンストラクターの詳細
ReflectiveLoadTimeWeaver
public ReflectiveLoadTimeWeaver()現在のコンテキストクラスローダー用の新しい ReflectiveLoadTimeWeaver を作成します。 これは、必要なウィービングメソッドをサポートする必要があります。ReflectiveLoadTimeWeaver
指定されたクラスローダーの新しい SimpleLoadTimeWeaver を作成します。- パラメーター:
classLoader
- ウィービングのために委譲するClassLoader
( 必要な織り方をサポートする必要があります)- 例外:
IllegalStateExceptionSE
- 提供されたClassLoader
が必要なウィービング方法をサポートしていない場合
メソッドの詳細
addTransformer
インターフェースからコピーされた説明:LoadTimeWeaver
このLoadTimeWeaver
によって適用されるClassFileTransformer
を追加します。- 次で指定:
- インターフェース
LoadTimeWeaver
のaddTransformer
- パラメーター:
transformer
- 追加するClassFileTransformer
getInstrumentableClassLoader
インターフェースからコピーされた説明:LoadTimeWeaver
ユーザー定義のClassFileTransformers
SE に基づいて、AspectJ スタイルのロード時間ウィービングによる計測をサポートするClassLoader
を返します。現在の
ClassLoader
か、このLoadTimeWeaver
インスタンスによって作成されたClassLoader
の可能性があります。- 次で指定:
- インターフェース
LoadTimeWeaver
のgetInstrumentableClassLoader
- 戻り値:
- 登録されたトランスフォーマーに従ってインスツルメントされたクラスを公開する
ClassLoader
getThrowawayClassLoader
インターフェースからコピーされた説明:LoadTimeWeaver
使い捨てClassLoader
を返します。これにより、親ClassLoader
に影響を与えることなくクラスをロードおよびインスペクションできます。LoadTimeWeaver.getInstrumentableClassLoader()
の呼び出しから返されたClassLoader
SE の同じインスタンスを返さないでください。- 次で指定:
- インターフェース
LoadTimeWeaver
のgetThrowawayClassLoader
- 戻り値:
- 一時的な使い捨て
ClassLoader
; 既存の状態なしで、呼び出しごとに新しいインスタンスを返す必要があります