public class ClassPathBeanDefinitionScanner extends ClassPathScanningCandidateComponentProvider
BeanFactory
または ApplicationContext
)に登録する Bean 定義スキャナー。 候補クラスは、構成可能な型フィルターを通じて検出されます。デフォルトのフィルターには、Spring の @Component
、@Repository
、@Service
、@Controller
ステレオタイプでアノテーションが付けられたクラスが含まれています。
可能な場合は、Java EE 6 の ManagedBean
SE および JSR-330 の Named
EE アノテーションもサポートします。
AnnotationConfigApplicationContext.scan(java.lang.String...)
, Component
, Repository
, Service
, Controller
logger
コンストラクターと説明 |
---|
ClassPathBeanDefinitionScanner(BeanDefinitionRegistry registry) 指定された 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> | doScan(StringSE... basePackages) 指定された基本パッケージ内でスキャンを実行し、登録された Bean 定義を返します。 |
BeanDefinitionDefaults | getBeanDefinitionDefaults() 検出された Bean に使用するデフォルトを返します(決して null ではありません)。 |
BeanDefinitionRegistry | getRegistry() このスキャナーが動作する BeanDefinitionRegistry を返します。 |
protected boolean | isCompatible(BeanDefinition newDefinition, BeanDefinition existingDefinition) 指定された新しい Bean 定義が、指定された既存の Bean 定義と互換性があるかどうかを判断します。 |
protected void | postProcessBeanDefinition(AbstractBeanDefinition beanDefinition, StringSE beanName) コンポーネントクラスのスキャンから取得したコンテンツ以外に、指定した Bean 定義にさらに設定を適用します。 |
protected void | registerBeanDefinition(BeanDefinitionHolder definitionHolder, BeanDefinitionRegistry registry) 指定された Bean を指定されたレジストリに登録します。 |
int | scan(StringSE... basePackages) 指定された基本パッケージ内でスキャンを実行します。 |
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 を設定します。 |
addExcludeFilter, addIncludeFilter, clearCache, findCandidateComponents, getEnvironment, getMetadataReaderFactory, getResourceLoader, isCandidateComponent, isCandidateComponent, registerDefaultFilters, resetFilters, resolveBasePackage, setEnvironment, setMetadataReaderFactory, setResourceLoader, setResourcePattern
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public ClassPathBeanDefinitionScanner(BeanDefinitionRegistry registry)
ClassPathBeanDefinitionScanner
を作成します。registry
- Bean 定義を BeanDefinitionRegistry
の形式でロードする BeanFactory
public ClassPathBeanDefinitionScanner(BeanDefinitionRegistry registry, boolean useDefaultFilters)
ClassPathBeanDefinitionScanner
を作成します。 渡された Bean ファクトリが BeanDefinitionRegistry
インターフェースだけでなく ResourceLoader
インターフェースも実装している場合は、デフォルトの ResourceLoader
としても使用されます。これは通常、ApplicationContext
実装の場合です。
プレーンな BeanDefinitionRegistry
を指定した場合、デフォルトの ResourceLoader
は PathMatchingResourcePatternResolver
になります。
渡された Bean ファクトリが EnvironmentCapable
も実装する場合、その環境はこのリーダーによって使用されます。それ以外の場合、リーダーは StandardEnvironment
を初期化して使用します。すべての ApplicationContext
実装は EnvironmentCapable
ですが、通常の BeanFactory
実装はそうではありません。
registry
- Bean 定義を BeanDefinitionRegistry
の形式でロードする BeanFactory
useDefaultFilters
- @Component
、@Repository
、@Service
、@Controller
ステレオタイプアノテーションのデフォルトフィルターを含めるかどうか ClassPathScanningCandidateComponentProvider.setResourceLoader(org.springframework.core.io.ResourceLoader)
, ClassPathScanningCandidateComponentProvider.setEnvironment(org.springframework.core.env.Environment)
public ClassPathBeanDefinitionScanner(BeanDefinitionRegistry registry, boolean useDefaultFilters, Environment environment)
ClassPathBeanDefinitionScanner
を作成し、Bean 定義プロファイルメタデータを評価するときに指定された Environment
を使用します。 渡された Bean ファクトリが BeanDefinitionRegistry
インターフェースを実装するだけでなく、ResourceLoader
インターフェースも実装する場合、デフォルトの ResourceLoader
としても使用されます。これは通常、ApplicationContext
実装の場合です。
プレーンな BeanDefinitionRegistry
を指定した場合、デフォルトの ResourceLoader
は PathMatchingResourcePatternResolver
になります。
registry
- Bean 定義を BeanDefinitionRegistry
の形式でロードする BeanFactory
useDefaultFilters
- @Component
、@Repository
、@Service
、@Controller
ステレオタイプアノテーションのデフォルトフィルターを含めるかどうか environment
- Bean 定義プロファイルのメタデータを評価するときに使用する Spring Environment
ClassPathScanningCandidateComponentProvider.setResourceLoader(org.springframework.core.io.ResourceLoader)
public ClassPathBeanDefinitionScanner(BeanDefinitionRegistry registry, boolean useDefaultFilters, Environment environment, @Nullable ResourceLoader resourceLoader)
ClassPathBeanDefinitionScanner
を作成し、Bean 定義プロファイルメタデータを評価するときに指定された Environment
を使用します。registry
- Bean 定義を BeanDefinitionRegistry
の形式でロードする BeanFactory
useDefaultFilters
- @Component
、@Repository
、@Service
、@Controller
ステレオタイプアノテーションのデフォルトフィルターを含めるかどうか environment
- Bean 定義プロファイルのメタデータを評価するときに使用する Spring Environment
resourceLoader
- 使用する ResourceLoader
public final BeanDefinitionRegistry getRegistry()
ClassPathScanningCandidateComponentProvider
の getRegistry
public void setBeanDefinitionDefaults(@Nullable BeanDefinitionDefaults beanDefinitionDefaults)
public BeanDefinitionDefaults getBeanDefinitionDefaults()
null
ではありません)。public void setAutowireCandidatePatterns(@Nullable StringSE... autowireCandidatePatterns)
autowireCandidatePatterns
- 照合するパターン public void setBeanNameGenerator(@Nullable BeanNameGenerator beanNameGenerator)
デフォルトは AnnotationBeanNameGenerator
です。
public void setScopeMetadataResolver(@Nullable ScopeMetadataResolver scopeMetadataResolver)
デフォルトは AnnotationScopeMetadataResolver
です。
public void setScopedProxyMode(ScopedProxyMode scopedProxyMode)
デフォルトは ScopedProxyMode.NO
です。
public void setIncludeAnnotationConfig(boolean includeAnnotationConfig)
デフォルトでは、ポストプロセッサーを登録します。アノテーションを無視したり、別の方法で処理したりするには、これをオフにします。
public int scan(StringSE... basePackages)
basePackages
- アノテーション付きクラスを確認するパッケージ protected SetSE<BeanDefinitionHolder> doScan(StringSE... basePackages)
このメソッドはアノテーション設定プロセッサーを登録しませんが、呼び出し側に任せます。
basePackages
- アノテーション付きクラスを確認するパッケージ null
)protected void postProcessBeanDefinition(AbstractBeanDefinition beanDefinition, StringSE beanName)
beanDefinition
- スキャンされた Bean 定義 beanName
- 指定された Bean の生成された Bean 名 protected void registerBeanDefinition(BeanDefinitionHolder definitionHolder, BeanDefinitionRegistry registry)
サブクラスでオーバーライドできます。登録プロセスを適合させるか、スキャンされた各 Bean の Bean 定義をさらに登録します。
definitionHolder
- Bean 定義と Bean の Bean 名 registry
- Bean を登録する BeanDefinitionRegistryprotected boolean checkCandidate(StringSE beanName, BeanDefinition beanDefinition) throws IllegalStateExceptionSE
beanName
- Bean の推奨名 beanDefinition
- 対応する Bean 定義 true
。指定された名前に互換性のある既存の Bean 定義が存在するためにスキップする必要がある場合は false
ConflictingBeanDefinitionException
- 指定された名前に対して、互換性のない既存の Bean 定義が見つかった場合 IllegalStateExceptionSE
protected boolean isCompatible(BeanDefinition newDefinition, BeanDefinition existingDefinition)
デフォルトの実装は、既存の Bean 定義が同じソースまたは非スキャンソースからのものである場合、互換性があると見なします。
newDefinition
- スキャンから作成された新しい Bean 定義 existingDefinition
- 既存の Bean 定義、潜在的に明示的に定義された定義、スキャンから以前に生成された定義