public class AnnotationConfigWebApplicationContext extends AbstractRefreshableWebApplicationContext implements AnnotationConfigRegistry
WebApplicationContext 実装 — 特に @Configuration アノテーション付きクラスだけでなく、プレーン @Component クラスおよび javax.inject アノテーションを使用する JSR-330 準拠クラスも受け入れます。クラスを 1 つずつ登録して(クラス名を構成場所として指定)、クラスパススキャンを実行できます(基本パッケージを構成場所として指定)。
これは、本質的に Web 環境の AnnotationConfigApplicationContext と同等です。
このアプリケーションコンテキストを使用するには、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 定義を意図的にオーバーライドできます。
AnnotationConfigApplicationContextDefaultResourceLoader.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_NAMECONFIG_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, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, 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, 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, getBeanFactory, getEnvironment, isActive, refresh, registerShutdownHook, setClassLoader, setEnvironment, setId, setParentgetAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDatecontainsBeanDefinition, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, 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()