クラス ClassPathScanningCandidateComponentProvider
- 実装されているすべてのインターフェース:
Aware、ResourceLoaderAware、EnvironmentCapable
- 既知の直属サブクラス
ClassPathBeanDefinitionScanner
候補コンポーネントは、除外フィルターと包含フィルターを適用することによって識別されます。AnnotationTypeFilter および AssignableTypeFilter には、Indexed アノテーションが付けられたアノテーション / ターゲット型のインクルードフィルターがサポートされています。他のインクルードフィルターが指定されている場合、インデックスは無視され、代わりにクラスパススキャンが使用されます。
この実装は、Spring の MetadataReader 機能に基づいており、ASM ClassReader によってサポートされています。
- 導入:
- 2.5
- 作成者:
- Mark Fisher, Juergen Hoeller, Ramnivas Laddad, Chris Beams, Stephane Nicoll, Sam Brannen
- 関連事項:
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクター修飾子コンストラクター説明protected柔軟なサブクラス初期化のための protected コンストラクター。ClassPathScanningCandidateComponentProvider(boolean useDefaultFilters) StandardEnvironmentを使用して ClassPathScanningCandidateComponentProvider を作成します。ClassPathScanningCandidateComponentProvider(boolean useDefaultFilters, Environment environment) 指定されたEnvironmentで ClassPathScanningCandidateComponentProvider を作成します。メソッドのサマリー
修飾子と型メソッド説明voidaddExcludeFilter(TypeFilter excludeFilter) 除外型フィルターを除外リストの前に追加します。voidaddIncludeFilter(TypeFilter includeFilter) 包含型フィルターを包含リストの最後に追加します。voidローカルメタデータキャッシュがあればクリアし、キャッシュされたクラスメタデータをすべて削除します。findCandidateComponents(StringSE basePackage) コンポーネントインデックスまたはクラスパスをスキャンして、候補コンポーネントを探します。final Environmentこのコンポーネントに関連付けられているEnvironmentを返します。final MetadataReaderFactoryこのコンポーネントプロバイダが使用する MetadataReaderFactory を返します。protected BeanDefinitionRegistryこのスキャナーで使用されているBeanDefinitionRegistryがあれば、それを返します。final ResourceLoaderこのコンポーネントプロバイダーが使用する ResourceLoader を返します。protected booleanisCandidateComponent(AnnotatedBeanDefinition beanDefinition) 指定された Bean 定義が候補コンポーネントとして適格かどうかを判断します。protected booleanisCandidateComponent(MetadataReader metadataReader) 指定されたクラスがどの除外フィルターにも一致せず、少なくとも 1 つの包含フィルターに一致するかどうかを判別します。protected void@Componentのデフォルトのフィルターを登録します。voidresetFilters(boolean useDefaultFilters) 構成済みの型フィルターをリセットします。protected StringSEresolveBasePackage(StringSE basePackage) 指定された基本パッケージをパッケージ検索パスのパターン仕様に解決します。voidsetEnvironment(Environment environment) プレースホルダーを解決し、@Conditionalアノテーション付きコンポーネントクラスを評価するときに使用する環境を設定します。voidsetMetadataReaderFactory(MetadataReaderFactory metadataReaderFactory) 使用するMetadataReaderFactoryを設定します。voidsetResourceLoader(ResourceLoader resourceLoader) リソースの場所に使用するResourceLoaderを設定します。voidsetResourcePattern(StringSE resourcePattern) クラスパスをスキャンするときに使用するリソースパターンを設定します。
フィールドの詳細
IGNORE_CLASSFORMAT_PROPERTY_NAME
特にサポートされていないクラスファイルバージョンの場合、クラスパスのスキャン中にクラス形式の例外を無視するように Spring に指示するシステムプロパティ。デフォルトでは、このようなクラス形式の不一致により、クラスパスのスキャンが失敗します。- 導入:
- 6.1.2
- 関連事項:
logger
コンストラクターの詳細
ClassPathScanningCandidateComponentProvider
protected ClassPathScanningCandidateComponentProvider()柔軟なサブクラス初期化のための protected コンストラクター。- 導入:
- 4.3.6
ClassPathScanningCandidateComponentProvider
public ClassPathScanningCandidateComponentProvider(boolean useDefaultFilters) StandardEnvironmentを使用して ClassPathScanningCandidateComponentProvider を作成します。- パラメーター:
useDefaultFilters-@Component、@Repository、@Service、@Controllerステレオタイプアノテーションのデフォルトフィルターを登録するかどうか- 関連事項:
ClassPathScanningCandidateComponentProvider
public ClassPathScanningCandidateComponentProvider(boolean useDefaultFilters, Environment environment) 指定されたEnvironmentで ClassPathScanningCandidateComponentProvider を作成します。- パラメーター:
useDefaultFilters-@Component、@Repository、@Service、@Controllerステレオタイプアノテーションのデフォルトフィルターを登録するかどうかenvironment- 使用する環境- 関連事項:
メソッドの詳細
setResourcePattern
クラスパスをスキャンするときに使用するリソースパターンを設定します。この値は、各基本パッケージ名に追加されます。- 関連事項:
findCandidateComponents(String)DEFAULT_RESOURCE_PATTERN
addIncludeFilter
包含型フィルターを包含リストの最後に追加します。addExcludeFilter
除外型フィルターを除外リストの前に追加します。resetFilters
public void resetFilters(boolean useDefaultFilters) 構成済みの型フィルターをリセットします。- パラメーター:
useDefaultFilters-@Component、@Repository、@Service、@Controllerステレオタイプアノテーションのデフォルトフィルターを再登録するかどうか- 関連事項:
registerDefaultFilters
protected void registerDefaultFilters()@Componentのデフォルトのフィルターを登録します。これにより、
@Repository、@Service、@Controllerステレオタイプアノテーションを含む、@Componentメタアノテーションを持つすべてのアノテーションが暗黙的に登録されます。利用可能な場合は、Jakarta EE の
ManagedBeanEE および JSR-330 のNamedEE アノテーション (および Jakarta 以前のjavax.annotation.ManagedBeanおよびjavax.inject.Namedの同等のアノテーション) もサポートします。setEnvironment
プレースホルダーを解決し、@Conditionalアノテーション付きコンポーネントクラスを評価するときに使用する環境を設定します。デフォルトは
StandardEnvironmentです。- パラメーター:
environment- 使用する環境
getEnvironment
インターフェースからコピーされた説明:EnvironmentCapableこのコンポーネントに関連付けられているEnvironmentを返します。- 次で指定:
- インターフェース
EnvironmentCapableのgetEnvironment
getRegistry
このスキャナーで使用されているBeanDefinitionRegistryがあれば、それを返します。setResourceLoader
リソースの場所に使用するResourceLoaderを設定します。これは通常、ResourcePatternResolver実装です。デフォルトは
PathMatchingResourcePatternResolverで、ResourcePatternResolverインターフェースを介してリソースパターンを解決することもできます。- 次で指定:
- インターフェース
ResourceLoaderAwareのsetResourceLoader - パラメーター:
resourceLoader- このオブジェクトによって使用される ResourceLoader オブジェクト- 関連事項:
getResourceLoader
このコンポーネントプロバイダーが使用する ResourceLoader を返します。setMetadataReaderFactory
使用するMetadataReaderFactoryを設定します。デフォルトは、指定されたリソースローダーの
CachingMetadataReaderFactoryです。setResourceLoader(org.springframework.core.io.ResourceLoader)の後にこの setter メソッドを呼び出して、指定された MetadataReaderFactory がデフォルトファクトリをオーバーライドするようにします。getMetadataReaderFactory
このコンポーネントプロバイダが使用する MetadataReaderFactory を返します。findCandidateComponents
コンポーネントインデックスまたはクラスパスをスキャンして、候補コンポーネントを探します。- パラメーター:
basePackage- アノテーション付きクラスをチェックするパッケージ- 戻り値:
- 自動検出された Bean 定義の対応するセット
resolveBasePackage
指定された基本パッケージをパッケージ検索パスのパターン仕様に解決します。デフォルトの実装は、システムプロパティに対してプレースホルダーを解決し、"." -based パッケージパスを「/"-based リソースパス」に変換します。
- パラメーター:
basePackage- ユーザーが指定した基本パッケージ- 戻り値:
- パッケージ検索に使用されるパターン仕様
isCandidateComponent
指定されたクラスがどの除外フィルターにも一致せず、少なくとも 1 つの包含フィルターに一致するかどうかを判別します。- パラメーター:
metadataReader- クラスの ASM ClassReader- 戻り値:
- クラスが候補コンポーネントとして適格かどうか
- 例外:
IOExceptionSE
isCandidateComponent
指定された Bean 定義が候補コンポーネントとして適格かどうかを判断します。デフォルトの実装では、クラスが外側のクラスに依存していないかどうか、またクラスが具象クラス (つまりインターフェースではない) であるか、
@Lookupメソッドを持っているかどうかがチェックされます。サブクラスでオーバーライドできます。
- パラメーター:
beanDefinition- チェックする Bean 定義- 戻り値:
- Bean 定義が候補コンポーネントとして適格かどうか
clearCache
public void clearCache()ローカルメタデータキャッシュがあればクリアし、キャッシュされたクラスメタデータをすべて削除します。