public class AnnotationConfigWebApplicationContext extends AbstractRefreshableWebApplicationContext implements AnnotationConfigRegistry
WebApplicationContext 実装 — 特に @Configuration クラスだけでなく、プレーンな @Component クラス、javax.inject アノテーションを使用する JSR-330 準拠のクラス。クラスを 1 つずつ登録する(構成の場所としてクラス名を指定する)だけでなく、クラスパススキャン(構成の場所として基本パッケージを指定する)を介して登録することもできます。
これは基本的に、Web 環境の AnnotationConfigApplicationContext と同等です。ただし、AnnotationConfigApplicationContext とは対照的に、このクラスは GenericApplicationContext を継承しないため、GenericApplicationContext で使用できる便利な registerBean(...) メソッドの一部を提供しません。Web 環境でアノテーション付きコンポーネントクラスを GenericApplicationContext に登録する場合は、AnnotatedBeanDefinitionReader で GenericWebApplicationContext を使用できます。詳細と例については、GenericWebApplicationContext の Javadoc を参照してください。
このアプリケーションコンテキストを使用するには、ContextLoader の "contextClass" コンテキストパラメーターおよび / または FrameworkServlet の "contextClass" 初期化パラメーターを、このクラスの完全修飾名に設定する必要があります。
Spring 3.1 の時点で、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 定義を意図的にオーバーライドできます。
AnnotationConfigApplicationContext, GenericWebApplicationContextDefaultResourceLoader.ClassPathContextResourceAPPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAMEAPPLICATION_CONTEXT_ID_PREFIX, SERVLET_CONFIG_BEAN_NAMECONTEXT_ATTRIBUTES_BEAN_NAME, CONTEXT_PARAMETERS_BEAN_NAME, ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, SCOPE_APPLICATION, SCOPE_REQUEST, SCOPE_SESSION, SERVLET_CONTEXT_BEAN_NAMEAPPLICATION_STARTUP_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_NAMEFACTORY_BEAN_PREFIXCLASSPATH_ALL_URL_PREFIXCLASSPATH_URL_PREFIX| コンストラクターと説明 |
|---|
AnnotationConfigWebApplicationContext() |
createEnvironment, getApplicationName, getConfigLocations, getNamespace, getResourceByPath, getResourcePatternResolver, getServletConfig, getServletContext, getTheme, initPropertySources, onRefresh, postProcessBeanFactory, setNamespace, setServletConfig, setServletContextafterPropertiesSet, getDefaultConfigLocations, resolvePath, setBeanName, setConfigLocation, setConfigLocations, setIdassertBeanFactoryActive, cancelRefresh, closeBeanFactory, createBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, refreshBeanFactory, setAllowBeanDefinitionOverriding, setAllowCircularReferencesaddApplicationListener, addBeanFactoryPostProcessor, close, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, doClose, 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, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, resetCommonCaches, setApplicationStartup, setDisplayName, setEnvironment, setParent, start, stop, toStringaddProtocolResolver, clearResourceCaches, getClassLoader, getProtocolResolvers, getResource, getResourceCache, setClassLoadercloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSEsetConfigLocation, setConfigLocationsaddApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getApplicationStartup, getBeanFactory, getEnvironment, isActive, refresh, registerShutdownHook, setApplicationStartup, setClassLoader, setEnvironment, setId, setParentgetAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDatecontainsBeanDefinition, findAnnotationOnBean, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotationcontainsLocalBean, getParentBeanFactorycontainsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatchgetMessage, getMessage, getMessagepublishEvent, publishEventgetResourcesgetClassLoader, getResourcepublic void setBeanNameGenerator(@Nullable BeanNameGenerator beanNameGenerator)
AnnotatedBeanDefinitionReader および / または ClassPathBeanDefinitionScanner で使用するカスタム BeanNameGenerator を設定します。 デフォルトは AnnotationBeanNameGenerator です。
@Nullable protected BeanNameGenerator getBeanNameGenerator()
AnnotatedBeanDefinitionReader および / または ClassPathBeanDefinitionScanner で使用するカスタム BeanNameGenerator を返します(ある場合)。public void setScopeMetadataResolver(@Nullable ScopeMetadataResolver scopeMetadataResolver)
AnnotatedBeanDefinitionReader および / または ClassPathBeanDefinitionScanner で使用するカスタム ScopeMetadataResolver を設定します。 デフォルトは AnnotationScopeMetadataResolver です。
@Nullable protected ScopeMetadataResolver getScopeMetadataResolver()
AnnotatedBeanDefinitionReader および / または ClassPathBeanDefinitionScanner で使用するカスタム ScopeMetadataResolver を返します(ある場合)。public void register(ClassSE<?>... componentClasses)
コンテキストで新しいクラスを完全に処理するには、AbstractApplicationContext.refresh() を呼び出す必要があることに注意してください。
AnnotationConfigRegistry の register componentClasses - 1 つ以上のコンポーネントクラス。@Configuration クラス scan(String...), loadBeanDefinitions(DefaultListableBeanFactory), AbstractRefreshableConfigApplicationContext.setConfigLocation(String), AbstractApplicationContext.refresh()public void scan(StringSE... basePackages)
コンテキストで新しいクラスを完全に処理するには、AbstractApplicationContext.refresh() を呼び出す必要があることに注意してください。
AnnotationConfigRegistry の scan basePackages - コンポーネントクラスをチェックするパッケージ loadBeanDefinitions(DefaultListableBeanFactory), register(Class...), AbstractRefreshableConfigApplicationContext.setConfigLocation(String), AbstractApplicationContext.refresh()protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory)
register(Class...) で指定されたクラスの BeanDefinition を登録し、scan(String...) で指定されたパッケージをスキャンします。AbstractRefreshableConfigApplicationContext.setConfigLocation(String) または AbstractRefreshableConfigApplicationContext.setConfigLocations(String[]) で指定された値について、まず各場所をクラスとしてロードし、クラスのロードが成功した場合(つまり ClassNotFoundException が発生した場合)に BeanDefinition を登録し、値がパッケージであると想定してコンポーネントクラスをスキャンします。
@Autowired、@Required、関連するアノテーションを使用できるように、アノテーション構成ポストプロセッサーのデフォルトセットを有効にします。
value 属性がステレオタイプアノテーションに提供されない限り、構成クラス Bean 定義は、生成された Bean 定義名で登録されます。
AbstractRefreshableApplicationContext の loadBeanDefinitions beanFactory - Bean 定義をロードする Bean ファクトリ register(Class...), scan(String...), AbstractRefreshableConfigApplicationContext.setConfigLocation(String), AbstractRefreshableConfigApplicationContext.setConfigLocations(String[]), AnnotatedBeanDefinitionReader, ClassPathBeanDefinitionScannerprotected AnnotatedBeanDefinitionReader getAnnotatedBeanDefinitionReader(DefaultListableBeanFactory beanFactory)
AnnotatedBeanDefinitionReader を構築します。 これは、Environment (必要な場合)で事前に構成する必要がありますが、BeanNameGenerator または ScopeMetadataResolver ではまだ構成しないでください。
beanFactory - Bean 定義をロードする Bean ファクトリ AbstractApplicationContext.getEnvironment(), getBeanNameGenerator(), getScopeMetadataResolver()protected ClassPathBeanDefinitionScanner getClassPathBeanDefinitionScanner(DefaultListableBeanFactory beanFactory)
ClassPathBeanDefinitionScanner を構築します。 これは、Environment (必要な場合)で事前に構成する必要がありますが、BeanNameGenerator または ScopeMetadataResolver ではまだ構成しないでください。
beanFactory - Bean 定義をロードする Bean ファクトリ AbstractApplicationContext.getEnvironment(), getBeanNameGenerator(), getScopeMetadataResolver()