パッケージ org.springframework.beans

クラス CachedIntrospectionResults

java.lang.ObjectSE
org.springframework.beans.CachedIntrospectionResults

public final class CachedIntrospectionResults extends ObjectSE
Java クラスの JavaBeans PropertyDescriptorSE 情報をキャッシュする内部クラス。アプリケーションコードで直接使用するためのものではありません。

JZ のシステム全体の BeanInfoSE キャッシュに依存するのではなく、アプリケーション ClassLoaderSE 内の Spring 独自の Bean 記述子のキャッシュに必要です(共有 JVM での個々のアプリケーションシャットダウンでのリークを回避するため)。

情報は静的にキャッシュされるため、操作する JavaBean ごとにこのクラスの新しいオブジェクトを作成する必要はありません。このクラスは、インスタンスを取得するためにプライベートコンストラクターと静的 forClass(Class) ファクトリメソッドを使用して、ファクトリデザインパターンを実装します。

キャッシングが効果的に機能するためには、いくつかの前提条件を満たす必要があることに注意してください: Spring jar がアプリケーションクラスと同じ ClassLoader に存在する配置を優先します。

6.0 では、Spring のデフォルトのイントロスペクションは、効率的なメソッドリフレクションパスを使用して基本的な JavaBeans のプロパティを検出します。インデックス付きプロパティと JDK がサポートするすべてのカスタマイザーを含む完全な JavaBeans イントロスペクションを行うには、次の内容の META-INF/spring.factories ファイルを構成します。org.springframework.beans.BeanInfoFactory=org.springframework.beans.StandardBeanInfoFactory 非 void setter メソッドを含む、Spring 5.3 互換の拡張イントロスペクションの場合: org.springframework.beans.BeanInfoFactory=org.springframework.beans.ExtendedBeanInfoFactory

導入:
2001 年 5 月 05 日
作成者:
Rod Johnson, Juergen Hoeller
関連事項:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static void
    クラスがこの CachedIntrospectionResults クラスでキャッシュセーフとして認定されない場合でも、指定された ClassLoader をキャッシュセーフとして受け入れます。
    static void
    指定された ClassLoader のイントロスペクションキャッシュをクリアし、その ClassLoader にあるすべてのクラスのイントロスペクション結果を削除し、受け入れリストから ClassLoader(およびその子)を削除します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • メソッドの詳細

    • acceptClassLoader

      public static void acceptClassLoader(@Nullable ClassLoaderSE classLoader)
      クラスがこの CachedIntrospectionResults クラスでキャッシュセーフとして認定されない場合でも、指定された ClassLoader をキャッシュセーフとして受け入れます。

      この構成方法は、ライフサイクルがアプリケーションと連動していない「共通の」ClassLoader (システム ClassLoader など) に Spring クラスが存在するシナリオでのみ関連します。このようなシナリオでは、共通の ClassLoader でリークが発生するため、CachedIntrospectionResults はデフォルトでアプリケーションのクラスをキャッシュしません。

      アプリケーションの起動時の acceptClassLoader 呼び出しは、アプリケーションのシャットダウン時の clearClassLoader(java.lang.ClassLoader) 呼び出しとペアにする必要があります。

      パラメーター:
      classLoader - 受け入れる ClassLoader
    • clearClassLoader

      public static void clearClassLoader(@Nullable ClassLoaderSE classLoader)
      指定された ClassLoader のイントロスペクションキャッシュをクリアし、その ClassLoader にあるすべてのクラスのイントロスペクション結果を削除し、受け入れリストから ClassLoader(およびその子)を削除します。
      パラメーター:
      classLoader - キャッシュをクリアする ClassLoader