クラス ReflectiveLoadTimeWeaver

java.lang.ObjectSE
org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver
実装されたすべてのインターフェース:
LoadTimeWeaver

public class ReflectiveLoadTimeWeaver extends ObjectSE implements 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 依存関係はなく、単に「緩い」メソッド契約です。

これは使用する LoadTimeWeaver です。Resin アプリケーションサーバーバージョン 3.1 +。

導入:
2.0
作成者:
Costin Leau, Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • ReflectiveLoadTimeWeaver

      public ReflectiveLoadTimeWeaver()
      現在のコンテキストクラスローダー用の新しい ReflectiveLoadTimeWeaver を作成します。 これは、必要なウィービングメソッドをサポートする必要があります
    • ReflectiveLoadTimeWeaver

      public ReflectiveLoadTimeWeaver(@Nullable ClassLoaderSE classLoader)
      指定されたクラスローダーの新しい SimpleLoadTimeWeaver を作成します。
      パラメーター:
      classLoader - ウィービングのために委譲する ClassLoader ( 必要な織り方をサポートする必要があります)
      例外:
      IllegalStateExceptionSE - 提供された ClassLoader が必要なウィービング方法をサポートしていない場合
  • メソッドの詳細

    • addTransformer

      public void addTransformer(ClassFileTransformerSE transformer)
      インターフェースからコピーされた説明: LoadTimeWeaver
      この LoadTimeWeaver によって適用される ClassFileTransformer を追加します。
      次で指定:
      インターフェース LoadTimeWeaveraddTransformer 
      パラメーター:
      transformer - 追加する ClassFileTransformer 
    • getInstrumentableClassLoader

      public ClassLoaderSE getInstrumentableClassLoader()
      インターフェースからコピーされた説明: LoadTimeWeaver
      ユーザー定義の ClassFileTransformersSE に基づいて、AspectJ スタイルのロード時間ウィービングによる計測をサポートする ClassLoader を返します。

      現在の ClassLoader か、この LoadTimeWeaver インスタンスによって作成された ClassLoader の可能性があります。

      次で指定:
      インターフェース LoadTimeWeavergetInstrumentableClassLoader 
      戻り値:
      登録されたトランスフォーマーに従ってインスツルメントされたクラスを公開する ClassLoader 
    • getThrowawayClassLoader

      public ClassLoaderSE getThrowawayClassLoader()
      インターフェースからコピーされた説明: LoadTimeWeaver
      使い捨て ClassLoader を返します。これにより、親 ClassLoader に影響を与えることなくクラスをロードおよびインスペクションできます。

      LoadTimeWeaver.getInstrumentableClassLoader() の呼び出しから返された ClassLoaderSE の同じインスタンスを返さないでください。

      次で指定:
      インターフェース LoadTimeWeavergetThrowawayClassLoader 
      戻り値:
      一時的な使い捨て ClassLoader; 既存の状態なしで、呼び出しごとに新しいインスタンスを返す必要があります