クラス CachedIntrospectionResults
PropertyDescriptor
SE 情報をキャッシュする内部クラス。アプリケーションコードで直接使用するためのものではありません。JZ のシステム全体の BeanInfo
SE キャッシュに依存するのではなく、アプリケーション ClassLoader
SE 内の 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
- 関連事項:
acceptClassLoader(ClassLoader)
clearClassLoader(ClassLoader)
forClass(Class)
メソッドのサマリー
修飾子と型メソッド説明static void
acceptClassLoader
(ClassLoaderSE classLoader) クラスがこの CachedIntrospectionResults クラスでキャッシュセーフとして認定されない場合でも、指定された ClassLoader をキャッシュセーフとして受け入れます。static void
clearClassLoader
(ClassLoaderSE classLoader) 指定された ClassLoader のイントロスペクションキャッシュをクリアし、その ClassLoader にあるすべてのクラスのイントロスペクション結果を削除し、受け入れリストから ClassLoader(およびその子)を削除します。
メソッドの詳細
acceptClassLoader
クラスがこの CachedIntrospectionResults クラスでキャッシュセーフとして認定されない場合でも、指定された ClassLoader をキャッシュセーフとして受け入れます。この構成方法は、Spring クラスが「共通の」ClassLoader(システム ClassLoader など)に存在し、そのライフサイクルがアプリケーションに結合されていないシナリオにのみ関連します。このようなシナリオでは、CachedIntrospectionResults はデフォルトでアプリケーションのクラスをキャッシュしません。これは、CachedIntrospectionResults が共通の ClassLoader でリークを作成するためです。
アプリケーションの起動時の
acceptClassLoader
呼び出しは、アプリケーションのシャットダウン時のclearClassLoader(java.lang.ClassLoader)
呼び出しとペアにする必要があります。- パラメーター:
classLoader
- 受け入れる ClassLoader
clearClassLoader
指定された ClassLoader のイントロスペクションキャッシュをクリアし、その ClassLoader にあるすべてのクラスのイントロスペクション結果を削除し、受け入れリストから ClassLoader(およびその子)を削除します。- パラメーター:
classLoader
- キャッシュをクリアする ClassLoader