public class ClassPathScanningCandidateComponentProvider extends ObjectSE implements EnvironmentCapable, ResourceLoaderAware
the index
を使用でき、それ以外の場合はクラスパスをスキャンします。候補コンポーネントは、除外および包含フィルターを適用することによって識別されます。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, waitSE
protected 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 の ManagedBean
SE および JSR-330 の Named
EE アノテーションもサポートします。
public void setEnvironment(Environment environment)
@Conditional
アノテーション付きコンポーネントクラスを評価するときに使用する環境を設定します。 デフォルトは StandardEnvironment
です。
environment
- 使用する環境 public final Environment getEnvironment()
EnvironmentCapable
Environment
を返します。EnvironmentCapable
の getEnvironment
@Nullable protected BeanDefinitionRegistry getRegistry()
BeanDefinitionRegistry
があれば、それを返します。public void setResourceLoader(@Nullable ResourceLoader resourceLoader)
ResourceLoader
を設定します。これは通常、ResourcePatternResolver
実装です。 デフォルトは PathMatchingResourcePatternResolver
で、ResourcePatternResolver
インターフェースを介してリソースパターンを解決することもできます。
ResourceLoaderAware
の setResourceLoader
resourceLoader
- このオブジェクトによって使用される ResourceLoader オブジェクト ResourcePatternResolver
, PathMatchingResourcePatternResolver
public 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 ClassReaderIOExceptionSE
protected boolean isCandidateComponent(AnnotatedBeanDefinition beanDefinition)
デフォルトの実装では、クラスがインターフェースではなく、外側のクラスに依存していないかどうかをチェックします。
サブクラスでオーバーライドできます。
beanDefinition
- チェックする Bean 定義 public void clearCache()