クラス 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
インターフェース 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 BeanNameGenerator
AnnotatedBeanDefinitionReader
および / またはClassPathBeanDefinitionScanner
で使用するカスタムBeanNameGenerator
を返します(ある場合)。protected ClassPathBeanDefinitionScanner
指定された Bean ファクトリ用にClassPathBeanDefinitionScanner
を構築します。protected ScopeMetadataResolver
AnnotatedBeanDefinitionReader
および / またはClassPathBeanDefinitionScanner
で使用するカスタムScopeMetadataResolver
を返します(ある場合)。protected void
loadBeanDefinitions
(DefaultListableBeanFactory beanFactory) void
処理する 1 つ以上のコンポーネントクラスを登録します。void
指定された基本パッケージ内でスキャンを実行します。void
setBeanNameGenerator
(BeanNameGenerator beanNameGenerator) AnnotatedBeanDefinitionReader
および / またはClassPathBeanDefinitionScanner
で使用するカスタムBeanNameGenerator
を設定します。void
setScopeMetadataResolver
(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
- 関連事項: