クラス AnnotationConfigWebApplicationContext
- 実装されているすべてのインターフェース:
CloseableSE、AutoCloseableSE、Aware、BeanFactory、BeanNameAware、HierarchicalBeanFactory、InitializingBean、ListableBeanFactory、AnnotationConfigRegistry、ApplicationContext、ApplicationEventPublisher、ConfigurableApplicationContext、Lifecycle、MessageSource、EnvironmentCapable、ResourceLoader、ResourcePatternResolver、ThemeSource、ConfigurableWebApplicationContext、WebApplicationContext
WebApplicationContext 実装 — 特に @Configuration クラスだけでなく、プレーンな @Component クラス、jakarta.inject アノテーションを使用する JSR-330 準拠のクラス。クラスを 1 つずつ登録する(構成の場所としてクラス名を指定する)だけでなく、クラスパススキャン(構成の場所として基本パッケージを指定する)を介して登録することもできます。
これは基本的に、Web 環境の AnnotationConfigApplicationContext と同等です。ただし、AnnotationConfigApplicationContext とは対照的に、このクラスは GenericApplicationContext を継承しないため、GenericApplicationContext で使用できる便利な registerBean(...) メソッドの一部を提供しません。Web 環境でアノテーション付きコンポーネントクラスを GenericApplicationContext に登録する場合は、AnnotatedBeanDefinitionReader で GenericWebApplicationContext を使用できます。詳細と例については、GenericWebApplicationContext の Javadoc を参照してください。
このアプリケーションコンテキストを使用するには、ContextLoader の "contextClass" コンテキストパラメーターおよび / または FrameworkServlet の "contextClass" 初期化パラメーターを、このクラスの完全修飾名に設定する必要があります。
web.xml に代わる WebApplicationInitializer コードベースの代替を使用する場合、このクラスは直接インスタンス化され、Spring の DispatcherServlet または ContextLoaderListener に挿入されることもあります。詳細と使用例については、Javadoc を参照してください。
XmlWebApplicationContext とは異なり、デフォルトの構成クラスの場所は想定されていません。むしろ、ContextLoader の場合は "contextConfigLocation" コンテキストパラメーター、FrameworkServlet の場合は "contextConfigLocation" init-param を設定する必要があります。param-value には、完全修飾クラス名と、コンポーネントをスキャンするための基本パッケージの両方を含めることができます。これらの場所がどのように処理されるかの詳細については、loadBeanDefinitions(org.springframework.beans.factory.support.DefaultListableBeanFactory) を参照してください。
"contextConfigLocation" パラメーターを設定する代わりに、ユーザーは ApplicationContextInitializer を実装し、"contextInitializerClasses" コンテキストパラメーター / 初期化パラメーターを設定できます。このような場合、ユーザーは、主に ContextLoader で使用される AbstractRefreshableConfigApplicationContext.setConfigLocation(String) メソッドよりも、AbstractApplicationContext.refresh() メソッドと scan(String...) メソッドを優先する必要があります。
メモ: 複数の @Configuration クラスの場合、後の @Bean 定義は、以前にロードされたファイルで定義されたものをオーバーライドします。これを利用して、追加の @Configuration クラスを介して特定の Bean 定義を意図的にオーバーライドできます。
- 導入:
- 3.0
- 作成者:
- Chris Beams, Juergen Hoeller, Sam Brannen
- 関連事項:
ネストされたクラスの要約
クラス org.springframework.core.io.DefaultResourceLoader から継承されたネストクラス / インターフェース
DefaultResourceLoader.ClassPathContextResourceフィールドのサマリー
クラス org.springframework.context.support.AbstractApplicationContext から継承されたフィールド
APPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAMEインターフェース org.springframework.beans.factory.BeanFactory から継承されたフィールド
FACTORY_BEAN_PREFIX, FACTORY_BEAN_PREFIX_CHARインターフェース org.springframework.context.ConfigurableApplicationContext から継承されたフィールド
APPLICATION_STARTUP_BEAN_NAME, BOOTSTRAP_EXECUTOR_BEAN_NAME, CONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, ENVIRONMENT_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SHUTDOWN_HOOK_THREAD_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_BEAN_NAMEインターフェース org.springframework.web.context.ConfigurableWebApplicationContext から継承されたフィールド
APPLICATION_CONTEXT_ID_PREFIX, SERVLET_CONFIG_BEAN_NAMEインターフェース org.springframework.core.io.ResourceLoader から継承されたフィールド
CLASSPATH_URL_PREFIXインターフェース org.springframework.core.io.support.ResourcePatternResolver から継承されたフィールド
CLASSPATH_ALL_URL_PREFIXインターフェース org.springframework.web.context.WebApplicationContext から継承されたフィールド
CONTEXT_ATTRIBUTES_BEAN_NAME, CONTEXT_PARAMETERS_BEAN_NAME, ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, SCOPE_APPLICATION, SCOPE_REQUEST, SCOPE_SESSION, SERVLET_CONTEXT_BEAN_NAMEコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected AnnotatedBeanDefinitionReader指定された Bean ファクトリのAnnotatedBeanDefinitionReaderを構築します。protected BeanNameGeneratorAnnotatedBeanDefinitionReaderおよび / またはClassPathBeanDefinitionScannerで使用するカスタムBeanNameGeneratorを返します(ある場合)。protected ClassPathBeanDefinitionScanner指定された Bean ファクトリ用にClassPathBeanDefinitionScannerを構築します。protected ScopeMetadataResolverAnnotatedBeanDefinitionReaderおよび / またはClassPathBeanDefinitionScannerで使用するカスタムScopeMetadataResolverを返します(ある場合)。protected voidloadBeanDefinitions(DefaultListableBeanFactory beanFactory) void処理する 1 つ以上のコンポーネントクラスを登録します。void指定された基本パッケージ内でスキャンを実行します。voidsetBeanNameGenerator(BeanNameGenerator beanNameGenerator) AnnotatedBeanDefinitionReaderおよび / またはClassPathBeanDefinitionScannerで使用するカスタムBeanNameGeneratorを設定します。voidsetScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver) AnnotatedBeanDefinitionReaderおよび / またはClassPathBeanDefinitionScannerで使用するカスタムScopeMetadataResolverを設定します。クラス org.springframework.web.context.support.AbstractRefreshableWebApplicationContext から継承されたメソッド
createEnvironment, getApplicationName, getConfigLocations, getNamespace, getResourceByPath, getResourcePatternResolver, getServletConfig, getServletContext, getTheme, initPropertySources, onRefresh, postProcessBeanFactory, setNamespace, setServletConfig, setServletContextクラス org.springframework.context.support.AbstractRefreshableConfigApplicationContext から継承されたメソッド
afterPropertiesSet, getDefaultConfigLocations, resolvePath, setBeanName, setConfigLocation, setConfigLocations, setIdクラス org.springframework.context.support.AbstractRefreshableApplicationContext から継承されたメソッド
assertBeanFactoryActive, cancelRefresh, closeBeanFactory, createBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, refreshBeanFactory, setAllowBeanDefinitionOverriding, setAllowCircularReferencesクラス org.springframework.context.support.AbstractApplicationContext から継承されたメソッド
addApplicationListener, addBeanFactoryPostProcessor, clearResourceCaches, close, containsBean, containsBeanDefinition, containsLocalBean, destroyBeans, doClose, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationStartup, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getEnvironment, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResources, getStartupDate, getType, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, invokeBeanFactoryPostProcessors, isActive, isClosed, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, removeApplicationListener, resetCommonCaches, setApplicationStartup, setDisplayName, setEnvironment, setParent, start, stop, toStringクラス org.springframework.core.io.DefaultResourceLoader から継承されたメソッド
addProtocolResolver, getClassLoader, getProtocolResolvers, getResource, getResourceCache, setClassLoaderクラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSEインターフェース org.springframework.context.ApplicationContext から継承されたメソッド
getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDateインターフェース org.springframework.context.ApplicationEventPublisher から継承されたメソッド
publishEvent, publishEventインターフェース org.springframework.beans.factory.BeanFactory から継承されたメソッド
containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatchインターフェース org.springframework.context.ConfigurableApplicationContext から継承されたメソッド
addApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getApplicationStartup, getBeanFactory, getEnvironment, isActive, isClosed, refresh, registerShutdownHook, removeApplicationListener, setApplicationStartup, setClassLoader, setEnvironment, setId, setParentインターフェース org.springframework.web.context.ConfigurableWebApplicationContext から継承されたメソッド
setConfigLocation, setConfigLocationsインターフェース org.springframework.beans.factory.HierarchicalBeanFactory から継承されたメソッド
containsLocalBean, getParentBeanFactoryインターフェース org.springframework.beans.factory.ListableBeanFactory から継承されたメソッド
containsBeanDefinition, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotationインターフェース org.springframework.context.MessageSource から継承されたメソッド
getMessage, getMessage, getMessageインターフェース org.springframework.core.io.ResourceLoader から継承されたメソッド
getClassLoader, getResourceインターフェース org.springframework.core.io.support.ResourcePatternResolver から継承されたメソッド
getResources
コンストラクターの詳細
AnnotationConfigWebApplicationContext
public AnnotationConfigWebApplicationContext()
メソッドの詳細
setBeanNameGenerator
AnnotatedBeanDefinitionReaderおよび / またはClassPathBeanDefinitionScannerで使用するカスタムBeanNameGeneratorを設定します。デフォルトは
AnnotationBeanNameGeneratorです。getBeanNameGenerator
AnnotatedBeanDefinitionReaderおよび / またはClassPathBeanDefinitionScannerで使用するカスタムBeanNameGeneratorを返します(ある場合)。setScopeMetadataResolver
AnnotatedBeanDefinitionReaderおよび / またはClassPathBeanDefinitionScannerで使用するカスタムScopeMetadataResolverを設定します。デフォルトは
AnnotationScopeMetadataResolverです。getScopeMetadataResolver
AnnotatedBeanDefinitionReaderおよび / またはClassPathBeanDefinitionScannerで使用するカスタムScopeMetadataResolverを返します(ある場合)。register
処理する 1 つ以上のコンポーネントクラスを登録します。コンテキストで新しいクラスを完全に処理するには、
AbstractApplicationContext.refresh()を呼び出す必要があることに注意してください。- 次で指定:
- インターフェース
AnnotationConfigRegistryのregister - パラメーター:
componentClasses- 1 つ以上のコンポーネントクラス (例:@Configurationクラス)- 関連事項:
scan
指定された基本パッケージ内でスキャンを実行します。コンテキストで新しいクラスを完全に処理するには、
AbstractApplicationContext.refresh()を呼び出す必要があることに注意してください。- 次で指定:
- インターフェース
AnnotationConfigRegistryのscan - パラメーター:
basePackages- コンポーネントクラスをチェックするパッケージ- 関連事項:
loadBeanDefinitions
register(Class...)で指定されたクラスのBeanDefinitionを登録し、scan(String...)で指定されたパッケージをスキャンします。AbstractRefreshableConfigApplicationContext.setConfigLocation(String)またはAbstractRefreshableConfigApplicationContext.setConfigLocations(String[])で指定された値について、まず各場所をクラスとしてロードし、クラスのロードが成功した場合(つまりClassNotFoundExceptionが発生した場合)にBeanDefinitionを登録し、値がパッケージであると想定してコンポーネントクラスをスキャンします。@Autowiredおよび関連するアノテーションを使用できるように、アノテーション構成ポストプロセッサーのデフォルトセットを有効にします。value属性がステレオタイプアノテーションに提供されない限り、構成クラス Bean 定義は、生成された Bean 定義名で登録されます。- 次で指定:
- クラス
AbstractRefreshableApplicationContextのloadBeanDefinitions - パラメーター:
beanFactory- Bean 定義をロードする Bean ファクトリ- 関連事項:
getAnnotatedBeanDefinitionReader
protected AnnotatedBeanDefinitionReader getAnnotatedBeanDefinitionReader(DefaultListableBeanFactory beanFactory) 指定された Bean ファクトリのAnnotatedBeanDefinitionReaderを構築します。これは、
Environment(必要な場合)で事前に構成する必要がありますが、BeanNameGeneratorまたはScopeMetadataResolverではまだ構成しないでください。- パラメーター:
beanFactory- Bean 定義をロードする Bean ファクトリ- 導入:
- 4.1.9
- 関連事項:
getClassPathBeanDefinitionScanner
protected ClassPathBeanDefinitionScanner getClassPathBeanDefinitionScanner(DefaultListableBeanFactory beanFactory) 指定された Bean ファクトリ用にClassPathBeanDefinitionScannerを構築します。これは、
Environment(必要な場合)で事前に構成する必要がありますが、BeanNameGeneratorまたはScopeMetadataResolverではまだ構成しないでください。- パラメーター:
beanFactory- Bean 定義をロードする Bean ファクトリ- 導入:
- 4.1.9
- 関連事項: