public class ClassPathScanningCandidateComponentProvider extends ObjectSE implements EnvironmentCapable, ResourceLoaderAware
候補コンポーネントは、除外フィルターと包含フィルターを適用することによって識別されます。AnnotationTypeFilter および AssignableTypeFilter には、Indexed アノテーションが付けられたアノテーション / ターゲット型のインクルードフィルターがサポートされています。他のインクルードフィルターが指定されている場合、インデックスは無視され、代わりにクラスパススキャンが使用されます。
この実装は、Spring の MetadataReader 機能に基づいており、ASM ClassReader によってサポートされています。
MetadataReaderFactory, AnnotationMetadata, ScannedGenericBeanDefinition, CandidateComponentsIndex| 修飾子 | コンストラクターと説明 |
|---|---|
protected | ClassPathScanningCandidateComponentProvider() 柔軟なサブクラス初期化のための protected コンストラクター。 |
| ClassPathScanningCandidateComponentProvider(boolean useDefaultFilters)StandardEnvironment を使用して ClassPathScanningCandidateComponentProvider を作成します。 |
| ClassPathScanningCandidateComponentProvider(boolean useDefaultFilters, Environment environment) 指定された Environment で ClassPathScanningCandidateComponentProvider を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | addExcludeFilter(TypeFilter excludeFilter) 除外型フィルターを除外リストの前に追加します。 |
void | addIncludeFilter(TypeFilter includeFilter) 包含型フィルターを包含リストの最後に追加します。 |
void | clearCache() ローカルメタデータキャッシュがあればクリアし、キャッシュされたクラスメタデータをすべて削除します。 |
SetSE<BeanDefinition> | findCandidateComponents(StringSE basePackage) コンポーネントインデックスまたはクラスパスをスキャンして、候補コンポーネントを探します。 |
Environment | getEnvironment() このコンポーネントに関連付けられている Environment を返します。 |
MetadataReaderFactory | getMetadataReaderFactory() このコンポーネントプロバイダが使用する MetadataReaderFactory を返します。 |
protected BeanDefinitionRegistry | getRegistry() このスキャナーで使用されている BeanDefinitionRegistry があれば、それを返します。 |
ResourceLoader | getResourceLoader() このコンポーネントプロバイダーが使用する ResourceLoader を返します。 |
protected boolean | isCandidateComponent(AnnotatedBeanDefinition beanDefinition) 指定された Bean 定義が候補として適格かどうかを判別します。 |
protected boolean | isCandidateComponent(MetadataReader metadataReader) 指定されたクラスがどの除外フィルターにも一致せず、少なくとも 1 つの包含フィルターに一致するかどうかを判別します。 |
protected void | registerDefaultFilters()@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) クラスパスをスキャンするときに使用するリソースパターンを設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEprotected final Log logger
protected ClassPathScanningCandidateComponentProvider()
public ClassPathScanningCandidateComponentProvider(boolean useDefaultFilters)
StandardEnvironment を使用して ClassPathScanningCandidateComponentProvider を作成します。useDefaultFilters - @Component、@Repository、@Service、@Controller ステレオタイプアノテーションのデフォルトフィルターを登録するかどうか registerDefaultFilters()public ClassPathScanningCandidateComponentProvider(boolean useDefaultFilters,
Environment environment)Environment で ClassPathScanningCandidateComponentProvider を作成します。useDefaultFilters - @Component、@Repository、@Service、@Controller ステレオタイプアノテーションのデフォルトフィルターを登録するかどうか environment - 使用する環境 registerDefaultFilters()public void setResourcePattern(StringSE resourcePattern)
public void addIncludeFilter(TypeFilter includeFilter)
public void addExcludeFilter(TypeFilter excludeFilter)
public void resetFilters(boolean useDefaultFilters)
useDefaultFilters - @Component、@Repository、@Service、@Controller ステレオタイプアノテーションのデフォルトフィルターを再登録するかどうか registerDefaultFilters()protected void registerDefaultFilters()
@Component のデフォルトのフィルターを登録します。 これにより、@Repository、@Service、@Controller ステレオタイプアノテーションを含む、@Component メタアノテーションを持つすべてのアノテーションが暗黙的に登録されます。
可能な場合は、Java EE 6 の ManagedBeanSE および JSR-330 の NamedEE アノテーションもサポートします。
public void setEnvironment(Environment environment)
@Conditional アノテーション付きコンポーネントクラスを評価するときに使用する環境を設定します。 デフォルトは StandardEnvironment です。
environment - 使用する環境 public final Environment getEnvironment()
EnvironmentCapableEnvironment を返します。EnvironmentCapable の getEnvironment @Nullable protected BeanDefinitionRegistry getRegistry()
BeanDefinitionRegistry があれば、それを返します。public void setResourceLoader(@Nullable ResourceLoader resourceLoader)
ResourceLoader を設定します。これは通常、ResourcePatternResolver 実装です。 デフォルトは PathMatchingResourcePatternResolver で、ResourcePatternResolver インターフェースを介してリソースパターンを解決することもできます。
ResourceLoaderAware の setResourceLoader resourceLoader - このオブジェクトによって使用される ResourceLoader オブジェクト ResourcePatternResolver, PathMatchingResourcePatternResolverpublic final ResourceLoader getResourceLoader()
public void setMetadataReaderFactory(MetadataReaderFactory metadataReaderFactory)
MetadataReaderFactory を設定します。 デフォルトは、指定されたリソースローダーの CachingMetadataReaderFactory です。
setResourceLoader(org.springframework.core.io.ResourceLoader) の後にこの setter メソッドを呼び出して、指定された MetadataReaderFactory がデフォルトファクトリをオーバーライドするようにします。
public final MetadataReaderFactory getMetadataReaderFactory()
public SetSE<BeanDefinition> findCandidateComponents(StringSE basePackage)
basePackage - アノテーション付きクラスをチェックするパッケージ protected StringSE resolveBasePackage(StringSE basePackage)
デフォルトの実装は、システムプロパティに対してプレースホルダーを解決し、"." -based パッケージパスを「/"-based リソースパス」に変換します。
basePackage - ユーザーが指定した基本パッケージ protected boolean isCandidateComponent(MetadataReader metadataReader) throws IOExceptionSE
metadataReader - クラスの ASM ClassReaderIOExceptionSEprotected boolean isCandidateComponent(AnnotatedBeanDefinition beanDefinition)
デフォルトの実装では、クラスがインターフェースではなく、外側のクラスに依存していないかどうかをチェックします。
サブクラスでオーバーライドできます。
beanDefinition - チェックする Bean 定義 public void clearCache()