クラス ClassPathBeanDefinitionScanner
- 実装されているすべてのインターフェース:
Aware, ResourceLoaderAware, EnvironmentCapable
BeanFactory または ApplicationContext)に登録する Bean 定義スキャナー。 候補クラスは、構成可能な型フィルターを通じて検出されます。デフォルトのフィルターには、Spring の @Component、@Repository、@Service、@Controller ステレオタイプでアノテーションが付けられたクラスが含まれています。
利用可能な場合は、JSR-330 の Named アノテーションもサポートします。
- 導入:
- 2.5
- 作成者:
- Mark Fisher, Juergen Hoeller, Chris Beams
- 関連事項:
フィールドのサマリー
コンストラクターの概要
コンストラクターコンストラクター説明指定された 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, @Nullable 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 @Nullable... autowireCandidatePatterns) オートワイヤー候補を決定するための名前一致パターンを設定します。voidsetBeanDefinitionDefaults(@Nullable BeanDefinitionDefaults beanDefinitionDefaults) 検出された Bean に使用するデフォルトを設定します。voidsetBeanNameGenerator(@Nullable BeanNameGenerator beanNameGenerator) 検出された Bean クラスに使用する BeanNameGenerator を設定します。voidsetIncludeAnnotationConfig(boolean includeAnnotationConfig) アノテーション設定ポストプロセッサーを登録するかどうかを指定します。voidsetScopedProxyMode(ScopedProxyMode scopedProxyMode) 非シングルトンスコープ Bean のプロキシ動作を指定します。voidsetScopeMetadataResolver(@Nullable ScopeMetadataResolver scopeMetadataResolver) 検出された Bean クラスに使用する ScopeMetadataResolver を設定します。クラス 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
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 定義、潜在的に明示的に定義された定義、スキャンから以前に生成された定義- 戻り値:
- 定義が互換性があると見なされるかどうか、既存の定義を優先して新しい定義をスキップするかどうか