クラス 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 を作成します。メソッドのサマリー
修飾子と型メソッド説明void
addExcludeFilter
(TypeFilter excludeFilter) 除外型フィルターを除外リストの前に追加します。void
addIncludeFilter
(TypeFilter includeFilter) 包含型フィルターを包含リストの最後に追加します。void
ローカルメタデータキャッシュがあればクリアし、キャッシュされたクラスメタデータをすべて削除します。findCandidateComponents
(StringSE basePackage) コンポーネントインデックスまたはクラスパスをスキャンして、候補コンポーネントを探します。final Environment
このコンポーネントに関連付けられているEnvironment
を返します。final MetadataReaderFactory
このコンポーネントプロバイダが使用する MetadataReaderFactory を返します。protected BeanDefinitionRegistry
このスキャナーで使用されているBeanDefinitionRegistry
があれば、それを返します。final ResourceLoader
このコンポーネントプロバイダーが使用する ResourceLoader を返します。protected boolean
isCandidateComponent
(AnnotatedBeanDefinition beanDefinition) 指定された Bean 定義が候補コンポーネントとして適格かどうかを判断します。protected boolean
isCandidateComponent
(MetadataReader metadataReader) 指定されたクラスがどの除外フィルターにも一致せず、少なくとも 1 つの包含フィルターに一致するかどうかを判別します。protected void
@Component
のデフォルトのフィルターを登録します。void
resetFilters
(boolean useDefaultFilters) 構成済みの型フィルターをリセットします。protected StringSE
resolveBasePackage
(StringSE basePackage) 指定された基本パッケージをパッケージ検索パスのパターン仕様に解決します。void
setEnvironment
(Environment environment) プレースホルダーを解決し、@Conditional
アノテーション付きコンポーネントクラスを評価するときに使用する環境を設定します。void
setMetadataReaderFactory
(MetadataReaderFactory metadataReaderFactory) 使用するMetadataReaderFactory
を設定します。void
setResourceLoader
(ResourceLoader resourceLoader) リソースの場所に使用するResourceLoader
を設定します。void
setResourcePattern
(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 の
ManagedBean
EE および JSR-330 のNamed
EE アノテーション (および 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()ローカルメタデータキャッシュがあればクリアし、キャッシュされたクラスメタデータをすべて削除します。