クラス AbstractRefreshableApplicationContext
- 実装されたすべてのインターフェース:
CloseableSE
、AutoCloseableSE
、BeanFactory
、HierarchicalBeanFactory
、ListableBeanFactory
、ApplicationContext
、ApplicationEventPublisher
、ConfigurableApplicationContext
、Lifecycle
、MessageSource
、EnvironmentCapable
、ResourceLoader
、ResourcePatternResolver
- 既知の直属サブクラス
AbstractRefreshableConfigApplicationContext
AbstractApplicationContext.refresh()
への複数の呼び出しをサポートし、毎回新しい内部 Bean ファクトリインスタンスを作成することになっている ApplicationContext
実装の基本クラス。通常(必ずというわけではありませんが)、そのようなコンテキストは、Bean 定義をロードするための構成場所のセットによって駆動されます。 サブクラスによって実装される唯一のメソッドは loadBeanDefinitions(org.springframework.beans.factory.support.DefaultListableBeanFactory)
で、これはリフレッシュのたびに呼び出されます。具体的な実装では、Bean 定義を特定の DefaultListableBeanFactory
にロードし、通常は 1 つ以上の特定の Bean 定義リーダーに委譲することになっています。
WebApplicationContexts にも同様の基本クラスがあることに注意してください。AbstractRefreshableWebApplicationContext
は同じサブクラス化戦略を提供しますが、Web 環境のすべてのコンテキスト機能を事前に実装します。Web コンテキストの構成場所を受信するための事前定義された方法もあります。
この基本クラスの具体的なスタンドアロンサブクラスは、特定の Bean 定義形式で読み取られ、ClassPathXmlApplicationContext
と FileSystemXmlApplicationContext
であり、どちらも共通の AbstractXmlApplicationContext
基本クラスから派生しています。AnnotationConfigApplicationContext
は、Bean 定義のソースとして @Configuration
アノテーション付きクラスをサポートします。
- 導入:
- 1.1.3
- 作成者:
- Juergen Hoeller, Chris Beams
- 関連事項:
ネストされたクラスのサマリー
クラス 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.core.io.ResourceLoader から継承されたフィールド
CLASSPATH_URL_PREFIX
インターフェース org.springframework.core.io.support.ResourcePatternResolver から継承されたフィールド
CLASSPATH_ALL_URL_PREFIX
コンストラクターのサマリー
コンストラクター説明親なしで新しい AbstractRefreshableApplicationContext を作成します。指定された親コンテキストで新しい AbstractRefreshableApplicationContext を作成します。方法の概要
修飾子と型メソッド説明protected void
無効にして何もしないようにする: AbstractRefreshableApplicationContext を使用すると、getBeanFactory()
はアクティブコンテキストの強力なアサーションを提供します。protected void
このコンテキストのリフレッシュ試行をキャンセルし、例外がスローされた後にactive
フラグをリセットします。protected final void
サブクラスはこのメソッドを実装して、内部 Bean ファクトリを解放する必要があります。protected DefaultListableBeanFactory
このコンテキストの内部 Bean ファクトリを作成します。protected void
customizeBeanFactory
(DefaultListableBeanFactory beanFactory) このコンテキストで使用される内部 Bean ファクトリをカスタマイズします。サブクラスはここで内部 Bean ファクトリを返す必要があります。protected final boolean
このコンテキストが現在 Bean ファクトリを保持しているかどうかを確認します。protected abstract void
loadBeanDefinitions
(DefaultListableBeanFactory beanFactory) Bean 定義を特定の Bean ファクトリにロードします。通常、1 つ以上の Bean 定義リーダーに委譲します。protected final void
この実装は、このコンテキストの基礎となる Bean ファクトリの実際のリフレッシュを実行し、以前の Bean ファクトリ(存在する場合)をシャットダウンし、コンテキストのライフサイクルの次のフェーズのために新しい Bean ファクトリを初期化します。void
setAllowBeanDefinitionOverriding
(boolean allowBeanDefinitionOverriding) 同じ名前で別の定義を登録し、前者を自動的に置き換えて、Bean 定義をオーバーライドできるようにするかどうかを設定します。void
setAllowCircularReferences
(boolean allowCircularReferences) Bean 間の循環参照を許可するかどうかを設定し、自動的に解決しようとします。クラス org.springframework.context.support.AbstractApplicationContext から継承されたメソッド
addApplicationListener, addBeanFactoryPostProcessor, clearResourceCaches, close, containsBean, containsBeanDefinition, containsLocalBean, createEnvironment, destroyBeans, doClose, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationName, 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, getResourcePatternResolver, getResources, getStartupDate, getType, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, initPropertySources, invokeBeanFactoryPostProcessors, isActive, isClosed, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, postProcessBeanFactory, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, removeApplicationListener, resetCommonCaches, setApplicationStartup, setDisplayName, setEnvironment, setId, setParent, start, stop, toString
クラス org.springframework.core.io.DefaultResourceLoader から継承されたメソッド
addProtocolResolver, getClassLoader, getProtocolResolvers, getResource, getResourceByPath, getResourceCache, setClassLoader
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
インターフェース org.springframework.context.ConfigurableApplicationContext から継承されたメソッド
addProtocolResolver, setClassLoader
インターフェース org.springframework.core.io.ResourceLoader から継承されたメソッド
getClassLoader, getResource
コンストラクターの詳細
AbstractRefreshableApplicationContext
public AbstractRefreshableApplicationContext()親なしで新しい AbstractRefreshableApplicationContext を作成します。AbstractRefreshableApplicationContext
指定された親コンテキストで新しい AbstractRefreshableApplicationContext を作成します。- パラメーター:
parent
- 親コンテキスト
メソッドの詳細
setAllowBeanDefinitionOverriding
public void setAllowBeanDefinitionOverriding(boolean allowBeanDefinitionOverriding) 同じ名前で別の定義を登録し、前者を自動的に置き換えることにより、Bean 定義のオーバーライドを許可するかどうかを設定します。そうでない場合は、例外がスローされます。デフォルトは "true" です。setAllowCircularReferences
public void setAllowCircularReferences(boolean allowCircularReferences) Bean 間の循環参照を許可するかどうかを設定し、自動的に解決しようとします。デフォルトは "true" です。これをオフにすると、循環参照が発生したときに例外がスローされ、完全に許可されなくなります。
refreshBeanFactory
この実装は、このコンテキストの基礎となる Bean ファクトリの実際のリフレッシュを実行し、以前の Bean ファクトリ(存在する場合)をシャットダウンし、コンテキストのライフサイクルの次のフェーズのために新しい Bean ファクトリを初期化します。- 次で指定:
- クラス
AbstractApplicationContext
のrefreshBeanFactory
- 例外:
BeansException
- Bean ファクトリの初期化が失敗した場合
cancelRefresh
クラスからコピーされた説明:AbstractApplicationContext
このコンテキストのリフレッシュ試行をキャンセルし、例外がスローされた後にactive
フラグをリセットします。- オーバーライド:
- クラス
AbstractApplicationContext
のcancelRefresh
- パラメーター:
ex
- キャンセルに至った例外
closeBeanFactory
protected final void closeBeanFactory()クラスからコピーされた説明:AbstractApplicationContext
サブクラスはこのメソッドを実装して、内部 Bean ファクトリを解放する必要があります。このメソッドは、他のすべてのシャットダウン作業の後にAbstractApplicationContext.close()
によって呼び出されます。例外をスローするべきではなく、シャットダウンの失敗をログに記録します。
- 次で指定:
- クラス
AbstractApplicationContext
のcloseBeanFactory
hasBeanFactory
protected final boolean hasBeanFactory()このコンテキストが現在 Bean ファクトリを保持しているかどうか、つまり、少なくとも 1 回はリフレッシュされ、まだ閉じられていないかどうかを確認します。getBeanFactory
クラスからコピーされた説明:AbstractApplicationContext
サブクラスはここで内部 Bean ファクトリを返す必要があります。ルックアップを効率的に実装して、パフォーマンスを低下させることなく繰り返し呼び出すことができるようにする必要があります。メモ: サブクラスは、内部 Bean ファクトリを返す前に、コンテキストがまだアクティブかどうかを確認する必要があります。コンテキストが閉じられると、内部ファクトリは通常、使用不可と見なされます。
- 次で指定:
- インターフェース
ConfigurableApplicationContext
のgetBeanFactory
- 次で指定:
- クラス
AbstractApplicationContext
のgetBeanFactory
- 戻り値:
- このアプリケーションコンテキストの内部 Bean ファクトリ (非
null
) - 関連事項:
assertBeanFactoryActive
protected void assertBeanFactoryActive()無効にして何もしないようにする: AbstractRefreshableApplicationContext を使用すると、getBeanFactory()
はアクティブコンテキストの強力なアサーションを提供します。- オーバーライド:
- クラス
AbstractApplicationContext
のassertBeanFactoryActive
createBeanFactory
このコンテキストの内部 Bean ファクトリを作成します。AbstractApplicationContext.refresh()
の試行ごとに呼び出されます。デフォルトの実装では、このコンテキストの親の内部 Bean ファクトリを親 Bean ファクトリとして
DefaultListableBeanFactory
を作成します。たとえば DefaultListableBeanFactory の設定をカスタマイズするために、サブクラスでオーバーライドできます。- 戻り値:
- このコンテキストの Bean ファクトリ
- 関連事項:
customizeBeanFactory
このコンテキストで使用される内部 Bean ファクトリをカスタマイズします。AbstractApplicationContext.refresh()
の試行ごとに呼び出されます。デフォルトの実装は、指定されている場合、このコンテキストの "allowBeanDefinitionOverriding" および "allowCircularReferences" 設定を適用します。
DefaultListableBeanFactory
の設定をカスタマイズするためにサブクラスでオーバーライドできます。- パラメーター:
beanFactory
- このコンテキスト用に新しく作成された Bean ファクトリ- 関連事項:
loadBeanDefinitions
protected abstract void loadBeanDefinitions(DefaultListableBeanFactory beanFactory) throws BeansException, IOExceptionSE Bean 定義を特定の Bean ファクトリにロードします。通常、1 つ以上の Bean 定義リーダーに委譲します。- パラメーター:
beanFactory
- Bean 定義をロードする Bean ファクトリ- 例外:
BeansException
- Bean 定義の解析が失敗した場合IOExceptionSE
- Bean 定義ファイルのロードが失敗した場合- 関連事項: