クラス AbstractClassGenerator<T>

java.lang.ObjectSE
org.springframework.cglib.core.AbstractClassGenerator<T>
実装されたすべてのインターフェース:
ClassGenerator
既知の直属サブクラス
BeanCopier.GeneratorBeanGeneratorBeanMap.GeneratorBulkBean.GeneratorConstructorDelegate.GeneratorEnhancerFastClass.GeneratorImmutableBean.GeneratorInterfaceMakerKeyFactory.GeneratorMethodDelegate.GeneratorMixin.GeneratorMulticastDelegate.GeneratorParallelSorter.GeneratorStringSwitcher.Generator

public abstract class AbstractClassGenerator<T> extends ObjectSE implements ClassGenerator
すべてのコード生成 CGLIB ユーティリティの抽象クラス。パフォーマンスのために生成されたクラスをキャッシュすることに加えて、ClassLoader、生成されたクラスの名前、生成前に適用される変換をカスタマイズするためのフックを提供します。
  • コンストラクターの詳細

  • メソッドの詳細

    • wrapCachedClass

      protected T wrapCachedClass(ClassSE klass)
    • unwrapCachedValue

      protected ObjectSE unwrapCachedValue(T cached)
    • setNamePrefix

      protected void setNamePrefix(StringSE namePrefix)
    • getClassName

      protected final StringSE getClassName()
    • setClassLoader

      public void setClassLoader(ClassLoaderSE classLoader)
      クラスが生成される ClassLoader を設定します。AbstractClassGenerator の具象サブクラス(Enhancer など)は、これが設定されていない場合、適切なデフォルトを選択しようとします。

      クラスは WeakHashMap を使用して ClassLoader ごとにキャッシュされ、関連するローダーがガベージコレクションされたときに生成されたクラスを削除できるようにします。

      パラメーター:
      classLoader - 新しいクラスを生成するローダー、またはデフォルトを使用する場合は null
    • setContextClass

      public void setContextClass(ClassSE contextClass)
    • setNamingPolicy

      public void setNamingPolicy(NamingPolicy namingPolicy)
      デフォルトの命名ポリシーを上書きします。
      パラメーター:
      namingPolicy - カスタムポリシー、またはデフォルトを使用する場合は null
      関連事項:
    • getNamingPolicy

      public NamingPolicy getNamingPolicy()
      関連事項:
    • setUseCache

      public void setUseCache(boolean useCache)
      同じプロパティを持つクラスの生成されたクラスの静的キャッシュを使用および更新するかどうか。デフォルトは true です。
    • getUseCache

      public boolean getUseCache()
      関連事項:
    • setAttemptLoad

      public void setAttemptLoad(boolean attemptLoad)
      設定されている場合、CGLIB は、クラスを生成する前に、指定された ClassLoader からクラスをロードしようとします。生成されたクラス名は一意であることが保証されていないため、デフォルトは false です。
    • getAttemptLoad

      public boolean getAttemptLoad()
    • setStrategy

      public void setStrategy(GeneratorStrategy strategy)
      このジェネレーターからバイトコードを作成するために使用する戦略を設定します。デフォルトでは、DefaultGeneratorStrategy のインスタンスが使用されます。
    • getStrategy

      public GeneratorStrategy getStrategy()
      関連事項:
    • getCurrent

      public static AbstractClassGenerator getCurrent()
      CGLIB によって内部的に使用されます。現在のスレッドでクラスを生成するために使用されている AbstractClassGenerator を返します。
    • getClassLoader

      public ClassLoaderSE getClassLoader()
    • getDefaultClassLoader

      protected abstract ClassLoaderSE getDefaultClassLoader()
    • getProtectionDomain

      protected ProtectionDomainSE getProtectionDomain()
      クラスを定義するときに使用する保護ドメインを返します。

      デフォルトの実装では、デフォルトの保護ドメインを使用するために null を返します。サブクラスは、より具体的な保護ドメインを使用するようにオーバーライドできます。

      戻り値:
      保護ドメイン (デフォルトを使用するための null )
    • create

      protected ObjectSE create(ObjectSE key)
    • generate

    • firstInstance

      protected abstract ObjectSE firstInstance(ClassSE type) throws ExceptionSE
      例外:
      ExceptionSE
    • nextInstance

      protected abstract ObjectSE nextInstance(ObjectSE instance) throws ExceptionSE
      例外:
      ExceptionSE