クラス ClassPathBeanDefinitionScanner
- 実装されているすべてのインターフェース:
Aware、ResourceLoaderAware、EnvironmentCapable
BeanFactory または ApplicationContext)に登録する Bean 定義スキャナー。 候補クラスは、構成可能な型フィルターを通じて検出されます。デフォルトのフィルターには、Spring の @Component、@Repository、@Service、@Controller ステレオタイプでアノテーションが付けられたクラスが含まれています。
可能な場合は、Jakarta EE の ManagedBeanEE および JSR-330 の NamedEE アノテーションもサポートします。
- 導入:
- 2.5
- 作成者:
- Mark Fisher, Juergen Hoeller, Chris Beams
- 関連事項:
フィールドのサマリー
クラス org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider から継承されたフィールド
loggerコンストラクターの概要
コンストラクターコンストラクター説明指定された Bean ファクトリの新しいClassPathBeanDefinitionScannerを作成します。ClassPathBeanDefinitionScanner(BeanDefinitionRegistry registry, boolean useDefaultFilters) 指定された Bean ファクトリの新しいClassPathBeanDefinitionScannerを作成します。ClassPathBeanDefinitionScanner(BeanDefinitionRegistry registry, boolean useDefaultFilters, Environment environment) 指定された Bean ファクトリの新しいClassPathBeanDefinitionScannerを作成し、Bean 定義プロファイルメタデータを評価するときに指定されたEnvironmentを使用します。ClassPathBeanDefinitionScanner(BeanDefinitionRegistry registry, boolean useDefaultFilters, Environment environment, ResourceLoader resourceLoader) 指定された Bean ファクトリの新しいClassPathBeanDefinitionScannerを作成し、Bean 定義プロファイルメタデータを評価するときに指定されたEnvironmentを使用します。メソッドのサマリー
修飾子と型メソッド説明protected booleancheckCandidate(StringSE beanName, BeanDefinition beanDefinition) 指定された候補の Bean 名を確認して、対応する Bean 定義を登録する必要があるか、既存の定義と競合するかを判別してください。protected SetSE<BeanDefinitionHolder>指定された基本パッケージ内でスキャンを実行し、登録された Bean 定義を返します。検出された Bean に使用するデフォルトを返します(決してnullではありません)。final BeanDefinitionRegistryこのスキャナーが動作する BeanDefinitionRegistry を返します。protected booleanisCompatible(BeanDefinition newDef, BeanDefinition existingDef) 指定された新しい Bean 定義が、指定された既存の Bean 定義と互換性があるかどうかを判断します。protected voidpostProcessBeanDefinition(AbstractBeanDefinition beanDefinition, StringSE beanName) コンポーネントクラスのスキャンから取得したコンテンツ以外に、指定した Bean 定義にさらに設定を適用します。protected voidregisterBeanDefinition(BeanDefinitionHolder definitionHolder, BeanDefinitionRegistry registry) 指定された Bean を指定されたレジストリに登録します。int指定された基本パッケージ内でスキャンを実行します。voidsetAutowireCandidatePatterns(StringSE... autowireCandidatePatterns) オートワイヤー候補を決定するための名前一致パターンを設定します。voidsetBeanDefinitionDefaults(BeanDefinitionDefaults beanDefinitionDefaults) 検出された Bean に使用するデフォルトを設定します。voidsetBeanNameGenerator(BeanNameGenerator beanNameGenerator) 検出された Bean クラスに使用する BeanNameGenerator を設定します。voidsetIncludeAnnotationConfig(boolean includeAnnotationConfig) アノテーション設定ポストプロセッサーを登録するかどうかを指定します。voidsetScopedProxyMode(ScopedProxyMode scopedProxyMode) 非シングルトンスコープ Bean のプロキシ動作を指定します。voidsetScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver) 検出された Bean クラスに使用する ScopeMetadataResolver を設定します。クラス org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider から継承されたメソッド
addExcludeFilter, addIncludeFilter, clearCache, findCandidateComponents, getEnvironment, getMetadataReaderFactory, getResourceLoader, isCandidateComponent, isCandidateComponent, registerDefaultFilters, resetFilters, resolveBasePackage, setEnvironment, setMetadataReaderFactory, setResourceLoader, setResourcePattern
コンストラクターの詳細
ClassPathBeanDefinitionScanner
指定された Bean ファクトリの新しいClassPathBeanDefinitionScannerを作成します。- パラメーター:
registry- Bean 定義をBeanDefinitionRegistryの形式でロードするBeanFactory
ClassPathBeanDefinitionScanner
指定された Bean ファクトリの新しいClassPathBeanDefinitionScannerを作成します。渡された Bean ファクトリが
BeanDefinitionRegistryインターフェースだけでなくResourceLoaderインターフェースも実装している場合は、デフォルトのResourceLoaderとしても使用されます。これは通常、ApplicationContext実装の場合です。プレーンな
BeanDefinitionRegistryを指定した場合、デフォルトのResourceLoaderはPathMatchingResourcePatternResolverになります。渡された Bean ファクトリが
EnvironmentCapableも実装する場合、その環境はこのリーダーによって使用されます。それ以外の場合、リーダーはStandardEnvironmentを初期化して使用します。すべてのApplicationContext実装はEnvironmentCapableですが、通常のBeanFactory実装はそうではありません。- パラメーター:
registry- Bean 定義をBeanDefinitionRegistryの形式でロードするBeanFactoryuseDefaultFilters-@Component、@Repository、@Service、@Controllerステレオタイプアノテーションのデフォルトフィルターを含めるかどうか- 関連事項:
ClassPathBeanDefinitionScanner
public ClassPathBeanDefinitionScanner(BeanDefinitionRegistry registry, boolean useDefaultFilters, Environment environment) 指定された Bean ファクトリの新しいClassPathBeanDefinitionScannerを作成し、Bean 定義プロファイルメタデータを評価するときに指定されたEnvironmentを使用します。渡された Bean ファクトリが
BeanDefinitionRegistryインターフェースを実装するだけでなく、ResourceLoaderインターフェースも実装する場合、デフォルトのResourceLoaderとしても使用されます。これは通常、ApplicationContext実装の場合です。プレーンな
BeanDefinitionRegistryを指定した場合、デフォルトのResourceLoaderはPathMatchingResourcePatternResolverになります。- パラメーター:
registry- Bean 定義をBeanDefinitionRegistryの形式でロードするBeanFactoryuseDefaultFilters-@Component、@Repository、@Service、@Controllerステレオタイプアノテーションのデフォルトフィルターを含めるかどうかenvironment- Bean 定義プロファイルのメタデータを評価するときに使用する SpringEnvironment- 導入:
- 3.1
- 関連事項:
ClassPathBeanDefinitionScanner
public ClassPathBeanDefinitionScanner(BeanDefinitionRegistry registry, boolean useDefaultFilters, Environment environment, @Nullable ResourceLoader resourceLoader) 指定された Bean ファクトリの新しいClassPathBeanDefinitionScannerを作成し、Bean 定義プロファイルメタデータを評価するときに指定されたEnvironmentを使用します。- パラメーター:
registry- Bean 定義をBeanDefinitionRegistryの形式でロードするBeanFactoryuseDefaultFilters-@Component、@Repository、@Service、@Controllerステレオタイプアノテーションのデフォルトフィルターを含めるかどうかenvironment- Bean 定義プロファイルのメタデータを評価するときに使用する SpringEnvironmentresourceLoader- 使用するResourceLoader- 導入:
- 4.3.6
メソッドの詳細
getRegistry
このスキャナーが動作する BeanDefinitionRegistry を返します。- オーバーライド:
- クラス
ClassPathScanningCandidateComponentProviderのgetRegistry
setBeanDefinitionDefaults
検出された Bean に使用するデフォルトを設定します。getBeanDefinitionDefaults
検出された Bean に使用するデフォルトを返します(決してnullではありません)。- 導入:
- 4.1
setAutowireCandidatePatterns
オートワイヤー候補を決定するための名前一致パターンを設定します。- パラメーター:
autowireCandidatePatterns- 照合するパターン
setBeanNameGenerator
検出された Bean クラスに使用する BeanNameGenerator を設定します。デフォルトは
AnnotationBeanNameGeneratorです。setScopeMetadataResolver
検出された Bean クラスに使用する ScopeMetadataResolver を設定します。これにより、カスタムの "scopedProxyMode" 設定が上書きされることに注意してください。デフォルトは
AnnotationScopeMetadataResolverです。setScopedProxyMode
非シングルトンスコープ Bean のプロキシ動作を指定します。これにより、カスタムの "scopeMetadataResolver" 設定が上書きされることに注意してください。デフォルトは
ScopedProxyMode.NOです。setIncludeAnnotationConfig
public void setIncludeAnnotationConfig(boolean includeAnnotationConfig) アノテーション設定ポストプロセッサーを登録するかどうかを指定します。デフォルトでは、ポストプロセッサーを登録します。アノテーションを無視したり、別の方法で処理したりするには、これをオフにします。
scan
指定された基本パッケージ内でスキャンを実行します。- パラメーター:
basePackages- アノテーション付きクラスを確認するパッケージ- 戻り値:
- 登録された Bean の数
doScan
指定された基本パッケージ内でスキャンを実行し、登録された Bean 定義を返します。このメソッドはアノテーション設定プロセッサーを登録しませんが、呼び出し側に任せます。
- パラメーター:
basePackages- アノテーション付きクラスを確認するパッケージ- 戻り値:
- ツール登録目的で登録されている Bean のセット(存在する場合) (非
null)
postProcessBeanDefinition
コンポーネントクラスのスキャンから取得したコンテンツ以外に、指定した Bean 定義にさらに設定を適用します。- パラメーター:
beanDefinition- スキャンされた Bean 定義beanName- 指定された Bean の生成された Bean 名
registerBeanDefinition
protected void registerBeanDefinition(BeanDefinitionHolder definitionHolder, BeanDefinitionRegistry registry) 指定された Bean を指定されたレジストリに登録します。サブクラスでオーバーライドできます。登録プロセスを適合させるか、スキャンされた各 Bean の Bean 定義をさらに登録します。
- パラメーター:
definitionHolder- Bean 定義と Bean の Bean 名registry- Bean を登録する BeanDefinitionRegistry
checkCandidate
protected boolean checkCandidate(StringSE beanName, BeanDefinition beanDefinition) throws IllegalStateExceptionSE 指定された候補の Bean 名を確認して、対応する Bean 定義を登録する必要があるか、既存の定義と競合するかを判別してください。- パラメーター:
beanName- Bean の推奨名beanDefinition- 対応する Bean 定義- 戻り値:
- Bean をそのまま登録できる場合は
true。指定された名前に互換性のある既存の Bean 定義が存在するためにスキップする必要がある場合はfalse - 例外:
IllegalStateExceptionSE- 指定された名前に対して、互換性のない既存の Bean 定義が見つかった場合
isCompatible
指定された新しい Bean 定義が、指定された既存の Bean 定義と互換性があるかどうかを判断します。デフォルトの実装は、既存の Bean 定義が同じソースまたは非スキャンソースからのものである場合、互換性があると見なします。
- パラメーター:
newDef- スキャンから作成された新しい Bean 定義existingDef- 既存の Bean 定義、潜在的に明示的に定義された定義、スキャンから以前に生成された定義- 戻り値:
- 定義が互換性があると見なされるかどうか、既存の定義を優先して新しい定義をスキップするかどうか