クラス ClassPathBeanDefinitionScanner
- 実装されたすべてのインターフェース:
Aware
、ResourceLoaderAware
、EnvironmentCapable
BeanFactory
または ApplicationContext
)に登録する Bean 定義スキャナー。 候補クラスは、構成可能な型フィルターを通じて検出されます。デフォルトのフィルターには、Spring の @Component
、@Repository
、@Service
、@Controller
ステレオタイプでアノテーションが付けられたクラスが含まれています。
可能な場合は、Jakarta EE の ManagedBean
EE および JSR-330 の Named
EE アノテーションもサポートします。
- 導入:
- 2.5
- 作成者:
- Mark Fisher, Juergen Hoeller, Chris Beams
- 関連事項:
フィールドのサマリー
クラス org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider から継承されたフィールド
IGNORE_CLASSFORMAT_PROPERTY_NAME, 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 boolean
checkCandidate
(StringSE beanName, BeanDefinition beanDefinition) 指定された候補の Bean 名を確認して、対応する Bean 定義を登録する必要があるか、既存の定義と競合するかを判別してください。protected SetSE<BeanDefinitionHolder>
指定された基本パッケージ内でスキャンを実行し、登録された Bean 定義を返します。検出された Bean に使用するデフォルトを返します(決してnull
ではありません)。final BeanDefinitionRegistry
このスキャナーが動作する BeanDefinitionRegistry を返します。protected boolean
isCompatible
(BeanDefinition newDef, BeanDefinition existingDef) 指定された新しい Bean 定義が、指定された既存の Bean 定義と互換性があるかどうかを判断します。protected void
postProcessBeanDefinition
(AbstractBeanDefinition beanDefinition, StringSE beanName) コンポーネントクラスのスキャンから取得したコンテンツ以外に、指定した Bean 定義にさらに設定を適用します。protected void
registerBeanDefinition
(BeanDefinitionHolder definitionHolder, BeanDefinitionRegistry registry) 指定された Bean を指定されたレジストリに登録します。int
指定された基本パッケージ内でスキャンを実行します。void
setAutowireCandidatePatterns
(StringSE... autowireCandidatePatterns) オートワイヤー候補を決定するための名前一致パターンを設定します。void
setBeanDefinitionDefaults
(BeanDefinitionDefaults beanDefinitionDefaults) 検出された Bean に使用するデフォルトを設定します。void
setBeanNameGenerator
(BeanNameGenerator beanNameGenerator) 検出された Bean クラスに使用する BeanNameGenerator を設定します。void
setIncludeAnnotationConfig
(boolean includeAnnotationConfig) アノテーション設定ポストプロセッサーを登録するかどうかを指定します。void
setScopedProxyMode
(ScopedProxyMode scopedProxyMode) 非シングルトンスコープ Bean のプロキシ動作を指定します。void
setScopeMetadataResolver
(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
の形式でロードするBeanFactory
useDefaultFilters
-@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
の形式でロードするBeanFactory
useDefaultFilters
-@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
の形式でロードするBeanFactory
useDefaultFilters
-@Component
、@Repository
、@Service
、@Controller
ステレオタイプアノテーションのデフォルトフィルターを含めるかどうかenvironment
- Bean 定義プロファイルのメタデータを評価するときに使用する SpringEnvironment
resourceLoader
- 使用する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 定義、潜在的に明示的に定義された定義、スキャンから以前に生成された定義- 戻り値:
- 定義が互換性があると見なされるかどうか、既存の定義を優先して新しい定義をスキップするかどうか