public abstract class AbstractApplicationContext extends DefaultResourceLoader implements ConfigurableApplicationContext
ApplicationContext
インターフェースの抽象的な実装。構成に使用されるストレージの型を強制しません。単に一般的なコンテキスト機能を実装します。テンプレートメソッドデザインパターンを使用します。抽象メソッドを実装するには、具象サブクラスが必要です。 プレーンな BeanFactory とは対照的に、ApplicationContext は、内部 Bean ファクトリで定義された特別な Bean を検出することになっています。このクラスは、コンテキストで Bean として定義される BeanFactoryPostProcessors
、BeanPostProcessors
、ApplicationListeners
を自動的に登録します
MessageSource
は、コンテキスト内で "messageSource" という名前で Bean として提供することもできます。そうでない場合、メッセージの解決は親コンテキストに委譲されます。さらに、アプリケーションイベントのマルチキャスターは、コンテキスト内で型 ApplicationEventMulticaster
の "applicationEventMulticaster" Bean として提供できます。そうでない場合、型 SimpleApplicationEventMulticaster
のデフォルトのマルチキャスターが使用されます。
DefaultResourceLoader
を継承することにより、リソースのロードを実装します。DefaultResourceLoader.getResourceByPath(java.lang.String)
メソッドがサブクラスでオーバーライドされない限り、非 URL リソースパスをクラスパスリソースとして処理します(パッケージパスを含む完全なクラスパスリソース名、たとえば "mypackage/myresource.dat" をサポート)。
refreshBeanFactory()
, getBeanFactory()
, BeanFactoryPostProcessor
, BeanPostProcessor
, ApplicationEventMulticaster
, ApplicationListener
, MessageSource
DefaultResourceLoader.ClassPathContextResource
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | APPLICATION_EVENT_MULTICASTER_BEAN_NAME ファクトリ内の ApplicationEventMulticaster Bean の名前。 |
static StringSE | LIFECYCLE_PROCESSOR_BEAN_NAME ファクトリ内の LifecycleProcessor Bean の名前。 |
protected Log | logger このクラスで使用されるロガー。 |
static StringSE | MESSAGE_SOURCE_BEAN_NAME ファクトリ内の MessageSource Bean の名前。 |
APPLICATION_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_NAME
FACTORY_BEAN_PREFIX
CLASSPATH_ALL_URL_PREFIX
CLASSPATH_URL_PREFIX
コンストラクターと説明 |
---|
AbstractApplicationContext() 親なしで新しい AbstractApplicationContext を作成します。 |
AbstractApplicationContext(ApplicationContext parent) 指定された親コンテキストで新しい AbstractApplicationContext を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
void | addApplicationListener(ApplicationListener<?> listener) コンテキストのリフレッシュやシャットダウンなどのコンテキストイベントで通知される新しい ApplicationListener を追加します。 |
void | addBeanFactoryPostProcessor(BeanFactoryPostProcessor postProcessor) Bean 定義のいずれかが評価される前に、リフレッシュ時にこのアプリケーションコンテキストの内部 Bean ファクトリに適用される新しい BeanFactoryPostProcessor を追加します。 |
protected void | assertBeanFactoryActive() このコンテキストの BeanFactory が現在アクティブであることをアサートし、アクティブでない場合は IllegalStateException SE をスローします。 |
protected void | cancelRefresh(BeansException ex) このコンテキストのリフレッシュ試行をキャンセルし、例外がスローされた後に active フラグをリセットします。 |
void | close() このアプリケーションコンテキストを閉じ、Bean ファクトリ内のすべての Bean を破棄します。 |
protected abstract void | closeBeanFactory() サブクラスはこのメソッドを実装して、内部 Bean ファクトリを解放する必要があります。 |
boolean | containsBean(StringSE name) この Bean ファクトリには、指定された名前の Bean 定義または外部登録されたシングルトンインスタンスが含まれているか判定します。 |
boolean | containsBeanDefinition(StringSE beanName) この Bean ファクトリに、指定された名前の Bean 定義が含まれているかどうかを確認します。 |
boolean | containsLocalBean(StringSE name) 祖先コンテキストで定義された Bean を無視して、ローカル Bean ファクトリに、指定された名前の Bean が含まれているかどうかを返します。 |
protected ConfigurableEnvironment | createEnvironment() 新しい StandardEnvironment を作成して返します。 |
void | destroy() 使用すべきではありません。 Spring Framework 5.0 現在、 close() を推奨 |
protected void | destroyBeans() このコンテキストが管理するすべての Bean を破棄するためのテンプレートメソッド。 |
protected void | doClose() 実際にコンテキストを閉じる: ContextClosedEvent を公開し、このアプリケーションコンテキストの Bean ファクトリ内のシングルトンを破棄します。 |
<A extends AnnotationSE> | findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType) 指定された Bean で annotationType の Annotation SE を見つけ、指定されたクラス自体にアノテーションが見つからない場合はそのインターフェースとスーパークラスをトラバースし、Bean のファクトリメソッド(存在する場合)を確認します。 |
<A extends AnnotationSE> | findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType, boolean allowFactoryBeanInit) 指定された Bean で annotationType の Annotation SE を見つけ、指定されたクラス自体にアノテーションが見つからない場合はそのインターフェースとスーパークラスをトラバースし、Bean のファクトリメソッド(存在する場合)を確認します。 |
protected void | finishBeanFactoryInitialization(ConfigurableListableBeanFactory beanFactory) このコンテキストの Bean ファクトリの初期化を終了し、残りのすべてのシングルトン Bean を初期化します。 |
protected void | finishRefresh() このコンテキストのリフレッシュを完了し、LifecycleProcessor の onRefresh() メソッドを呼び出して、 ContextRefreshedEvent を公開します。 |
StringSE[] | getAliases(StringSE name) 存在する場合、指定された Bean 名のエイリアスを返します。 |
CollectionSE<ApplicationListener<?>> | getApplicationListeners() 静的に指定された ApplicationListeners のリストを返します。 |
StringSE | getApplicationName() このコンテキストが属するデプロイされたアプリケーションの名前を返します。 |
ApplicationStartup | getApplicationStartup() このアプリケーションコンテキストの ApplicationStartup を返します。 |
AutowireCapableBeanFactory | getAutowireCapableBeanFactory() すでに利用可能な場合、このコンテキストの内部 Bean ファクトリを AutowireCapableBeanFactory として返します。 |
<T> T | getBean(ClassSE<T> requiredType) 指定されたオブジェクト型が存在する場合、一意に一致する Bean インスタンスを返します。 |
<T> T | getBean(ClassSE<T> requiredType, ObjectSE... args) 指定された Bean のインスタンス(共有または独立)を返します。 |
ObjectSE | getBean(StringSE name) 指定された Bean のインスタンス(共有または独立)を返します。 |
<T> T | getBean(StringSE name, ClassSE<T> requiredType) 指定された Bean のインスタンス(共有または独立)を返します。 |
ObjectSE | getBean(StringSE name, ObjectSE... args) 指定された Bean のインスタンス(共有または独立)を返します。 |
int | getBeanDefinitionCount() ファクトリで定義されている Bean の数を返します。 |
StringSE[] | getBeanDefinitionNames() このファクトリで定義されているすべての Bean の名前を返します。 |
abstract ConfigurableListableBeanFactory | getBeanFactory() サブクラスはここで内部 Bean ファクトリを返す必要があります。 |
ListSE<BeanFactoryPostProcessor> | getBeanFactoryPostProcessors() 内部 BeanFactory に適用される BeanFactoryPostProcessors のリストを返します。 |
StringSE[] | getBeanNamesForAnnotation(ClassSE<? extends AnnotationSE> annotationType) 対応する Bean インスタンスをまだ作成せずに、提供された Annotation SE 型でアノテーションが付けられている Bean のすべての名前を検索します。 |
StringSE[] | getBeanNamesForType(ClassSE<?> type) Bean 定義または FactoryBeans の場合は getObjectType の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。 |
StringSE[] | getBeanNamesForType(ClassSE<?> type, boolean includeNonSingletons, boolean allowEagerInit) Bean 定義または FactoryBeans の場合は getObjectType の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。 |
StringSE[] | getBeanNamesForType(ResolvableType type) Bean 定義または FactoryBeans の場合は getObjectType の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。 |
StringSE[] | getBeanNamesForType(ResolvableType type, boolean includeNonSingletons, boolean allowEagerInit) Bean 定義または FactoryBeans の場合は getObjectType の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。 |
<T> ObjectProvider<T> | getBeanProvider(ClassSE<T> requiredType) 指定された Bean のプロバイダーを返します。これにより、可用性および一意性オプションを含め、インスタンスの遅延オンデマンド取得が可能になります。 |
<T> ObjectProvider<T> | getBeanProvider(ClassSE<T> requiredType, boolean allowEagerInit) 指定された Bean のプロバイダーを返します。これにより、可用性および一意性オプションを含め、インスタンスの遅延オンデマンド取得が可能になります。 |
<T> ObjectProvider<T> | getBeanProvider(ResolvableType requiredType) 指定された Bean のプロバイダーを返します。これにより、可用性および一意性オプションを含め、インスタンスの遅延オンデマンド取得が可能になります。 |
<T> ObjectProvider<T> | getBeanProvider(ResolvableType requiredType, boolean allowEagerInit) 指定された Bean のプロバイダーを返します。これにより、可用性および一意性オプションを含め、インスタンスの遅延オンデマンド取得が可能になります。 |
<T> MapSE<StringSE,T> | getBeansOfType(ClassSE<T> type) Bean 定義または FactoryBeans の場合は getObjectType の値から判断して、指定されたオブジェクト型(サブクラスを含む)に一致する Bean インスタンスを返します。 |
<T> MapSE<StringSE,T> | getBeansOfType(ClassSE<T> type, boolean includeNonSingletons, boolean allowEagerInit) Bean 定義または FactoryBeans の場合は getObjectType の値から判断して、指定されたオブジェクト型(サブクラスを含む)に一致する Bean インスタンスを返します。 |
MapSE<StringSE, ObjectSE> | getBeansWithAnnotation(ClassSE<? extends AnnotationSE> annotationType) 指定された Annotation SE 型でアノテーションが付けられたすべての Bean を検索し、対応する Bean インスタンスを持つ Bean 名のマップを返します。 |
StringSE | getDisplayName() このコンテキストのフレンドリ名を返します。 |
ConfigurableEnvironment | getEnvironment() このアプリケーションコンテキストの Environment を構成可能な形式で返し、さらにカスタマイズできるようにします。 |
StringSE | getId() このアプリケーションコンテキストの一意の ID を返します。 |
protected BeanFactory | getInternalParentBeanFactory() ConfigurableApplicationContext を実装する場合、親コンテキストの内部 Bean ファクトリを返します。それ以外の場合は、親コンテキスト自体を返します。 |
protected MessageSource | getInternalParentMessageSource() 親コンテキストの内部メッセージソースも AbstractApplicationContext の場合は返します。それ以外の場合は、親コンテキスト自体を返します。 |
StringSE | getMessage(MessageSourceResolvable resolvable, LocaleSE locale) 渡された MessageSourceResolvable 引数内に含まれるすべての属性を使用して、メッセージの解決を試みます。 |
StringSE | getMessage(StringSE code, ObjectSE[] args, LocaleSE locale) メッセージの解決を試みます。 |
StringSE | getMessage(StringSE code, ObjectSE[] args, StringSE defaultMessage, LocaleSE locale) メッセージの解決を試みます。 |
ApplicationContext | getParent() 親コンテキストを返します。親がない場合(つまり、このコンテキストがコンテキスト階層のルートである場合)は、 null を返します。 |
BeanFactory | getParentBeanFactory() 親 Bean ファクトリ、または存在しない場合は null を返します。 |
protected ResourcePatternResolver | getResourcePatternResolver() ロケーションパターンをリソースインスタンスに解決するために使用する ResourcePatternResolver を返します。 |
Resource[] | getResources(StringSE locationPattern) 指定されたロケーションパターンを Resource オブジェクトに解決します。 |
long | getStartupDate() このコンテキストが最初にロードされたときのタイムスタンプ(ms)を返します。 |
ClassSE<?> | getType(StringSE name) 指定された名前の Bean の型を判別します。 |
ClassSE<?> | getType(StringSE name, boolean allowFactoryBeanInit) 指定された名前の Bean の型を判別します。 |
protected void | initApplicationEventMulticaster() ApplicationEventMulticaster を初期化します。 |
protected void | initLifecycleProcessor() LifecycleProcessor を初期化します。 |
protected void | initMessageSource() MessageSource を初期化します。 |
protected void | initPropertySources() スタブプロパティソースを実際のインスタンスに置き換えます。 |
protected void | invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory beanFactory) 登録されているすべての BeanFactoryPostProcessor Bean をインスタンス化して呼び出します。 |
boolean | isActive() このアプリケーションコンテキストがアクティブかどうか、つまり、少なくとも 1 回はリフレッシュされ、まだ閉じられていないかどうかを判断します。 |
boolean | isPrototype(StringSE name) この Bean はプロトタイプですか? つまり、 BeanFactory.getBean(java.lang.String) は常に独立したインスタンスを返しますか? |
boolean | isRunning() このコンポーネントが現在実行されているかどうかを確認します。 |
boolean | isSingleton(StringSE name) この Bean は共有シングルトンですか? つまり、 BeanFactory.getBean(java.lang.String) は常に同じインスタンスを返しますか? |
boolean | isTypeMatch(StringSE name, ClassSE<?> typeToMatch) 指定された名前の Bean が指定された型と一致するかどうかを確認します。 |
boolean | isTypeMatch(StringSE name, ResolvableType typeToMatch) 指定された名前の Bean が指定された型と一致するかどうかを確認します。 |
protected ConfigurableListableBeanFactory | obtainFreshBeanFactory() サブクラスに内部 Bean ファクトリをリフレッシュするよう指示します。 |
protected void | onClose() オーバーライドしてコンテキスト固有のシャットダウン作業を追加できるテンプレートメソッド。 |
protected void | onRefresh() コンテキスト固有のリフレッシュ作業を追加するためにオーバーライドできるテンプレートメソッド。 |
protected void | postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) 標準の初期化後に、アプリケーションコンテキストの内部 Bean ファクトリを変更します。 |
protected void | prepareBeanFactory(ConfigurableListableBeanFactory beanFactory) コンテキストの ClassLoader やポストプロセッサーなど、ファクトリの標準コンテキスト特性を構成します。 |
protected void | prepareRefresh() このコンテキストをリフレッシュして、起動日とアクティブフラグを設定し、プロパティソースの初期化を実行する準備をします。 |
void | publishEvent(ApplicationEvent event) 指定されたイベントをすべてのリスナーに公開します。 |
void | publishEvent(ObjectSE event) 指定されたイベントをすべてのリスナーに公開します。 |
protected void | publishEvent(ObjectSE event, ResolvableType eventType) 指定されたイベントをすべてのリスナーに公開します。 |
void | refresh() Java ベースの構成、XML ファイル、プロパティファイル、リレーショナルデータベーススキーマ、その他の形式の構成の永続的な表現をロードまたはリフレッシュします。 |
protected abstract void | refreshBeanFactory() サブクラスは、実際の構成ロードを実行するためにこのメソッドを実装する必要があります。 |
protected void | registerBeanPostProcessors(ConfigurableListableBeanFactory beanFactory) すべての BeanPostProcessor Bean をインスタンス化して登録します(指定されている場合は明示的な順序に従います)。 |
protected void | registerListeners() ApplicationListener を実装する Bean をリスナーとして追加します。 |
void | registerShutdownHook() SpringContextShutdownHook という名前SEのシャットダウンフックを JVM ランタイムに登録し、その時点ですでに閉じられていない限り、JVM シャットダウン時にこのコンテキストを閉じます。 |
protected void | resetCommonCaches() Spring の一般的なリフレクションメタデータキャッシュ、特に ReflectionUtils 、AnnotationUtils 、ResolvableType および CachedIntrospectionResults キャッシュをリセットします。 |
void | setApplicationStartup(ApplicationStartup applicationStartup) このアプリケーションコンテキストに ApplicationStartup を設定します。 |
void | setDisplayName(StringSE displayName) このコンテキストにわかりやすい名前を設定します。 |
void | setEnvironment(ConfigurableEnvironment environment) このアプリケーションコンテキストの Environment を設定します。 |
void | setId(StringSE id) このアプリケーションコンテキストの一意の ID を設定します。 |
void | setParent(ApplicationContext parent) このアプリケーションコンテキストの親を設定します。 |
void | start() このコンポーネントを起動します。 |
void | stop() このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。 |
StringSE | toString() このコンテキストに関する情報を返します。 |
addProtocolResolver, clearResourceCaches, getClassLoader, getProtocolResolvers, getResource, getResourceByPath, getResourceCache, setClassLoader
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
addProtocolResolver, setClassLoader
getClassLoader, getResource
public static final StringSE MESSAGE_SOURCE_BEAN_NAME
MessageSource
, 定数フィールド値 public static final StringSE LIFECYCLE_PROCESSOR_BEAN_NAME
public static final StringSE APPLICATION_EVENT_MULTICASTER_BEAN_NAME
protected final Log logger
public AbstractApplicationContext()
public AbstractApplicationContext(@Nullable ApplicationContext parent)
parent
- 親コンテキスト public void setId(StringSE id)
デフォルトは、コンテキストインスタンスのオブジェクト ID、またはコンテキスト自体が Bean として定義されている場合はコンテキスト Bean の名前です。
ConfigurableApplicationContext
の setId
id
- コンテキストの一意の IDpublic StringSE getId()
ApplicationContext
ApplicationContext
の getId
null
public StringSE getApplicationName()
ApplicationContext
ApplicationContext
の getApplicationName
public void setDisplayName(StringSE displayName)
デフォルトは、コンテキストインスタンスのオブジェクト ID です。
public StringSE getDisplayName()
ApplicationContext
の getDisplayName
null
)@Nullable public ApplicationContext getParent()
null
を返します。ApplicationContext
の getParent
null
public void setEnvironment(ConfigurableEnvironment environment)
Environment
を設定します。 デフォルト値は createEnvironment()
によって決定されます。この方法でデフォルトを置き換えることは 1 つのオプションですが、getEnvironment()
による構成も検討する必要があります。どちらの場合も、そのような変更は refresh()
の前に実行する必要があります。
ConfigurableApplicationContext
の setEnvironment
environment
- 新しい環境 createEnvironment()
public ConfigurableEnvironment getEnvironment()
Environment
を構成可能な形式で返し、さらにカスタマイズできるようにします。 何も指定されていない場合、デフォルトの環境は createEnvironment()
を介して初期化されます。
ConfigurableApplicationContext
の getEnvironment
EnvironmentCapable
の getEnvironment
protected ConfigurableEnvironment createEnvironment()
StandardEnvironment
を作成して返します。 サブクラスは、カスタム ConfigurableEnvironment
実装を提供するためにこのメソッドをオーバーライドできます。
public AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateExceptionSE
ApplicationContext
の getAutowireCapableBeanFactory
IllegalStateExceptionSE
- コンテキストが AutowireCapableBeanFactory
インターフェースをサポートしていない場合、またはオートワイヤー可能な Bean ファクトリをまだ保持していない場合(たとえば、refresh()
が呼び出されたことがない場合)、コンテキストがすでに閉じられている場合 getBeanFactory()
public long getStartupDate()
ApplicationContext
の getStartupDate
public void publishEvent(ApplicationEvent event)
メモ: リスナーは、MessageSource の後に初期化され、リスナー実装内でそれにアクセスできるようになります。MessageSource 実装はイベントを公開できません。
ApplicationEventPublisher
の publishEvent
event
- 公開するイベント (アプリケーション固有または標準のフレームワークイベント)ApplicationEventPublisher.publishEvent(Object)
, ContextRefreshedEvent
, ContextClosedEvent
public void publishEvent(ObjectSE event)
メモ: リスナーは、MessageSource の後に初期化され、リスナー実装内でそれにアクセスできるようになります。MessageSource 実装はイベントを公開できません。
ApplicationEventPublisher
の publishEvent
event
- 公開するイベント (ApplicationEvent
または PayloadApplicationEvent
に変換されるペイロードオブジェクト)ApplicationEventPublisher.publishEvent(ApplicationEvent)
, PayloadApplicationEvent
protected void publishEvent(ObjectSE event, @Nullable ResolvableType eventType)
event
- 公開するイベント (ApplicationEvent
または PayloadApplicationEvent
に変換されるペイロードオブジェクト)eventType
- 解決済みのイベント型(わかっている場合)public void setApplicationStartup(ApplicationStartup applicationStartup)
ConfigurableApplicationContext
ApplicationStartup
を設定します。これにより、アプリケーションコンテキストは起動時にメトリクスを記録できます。
ConfigurableApplicationContext
の setApplicationStartup
applicationStartup
- 新しいコンテキストイベントファクトリ public ApplicationStartup getApplicationStartup()
ConfigurableApplicationContext
ApplicationStartup
を返します。ConfigurableApplicationContext
の getApplicationStartup
protected ResourcePatternResolver getResourcePatternResolver()
PathMatchingResourcePatternResolver
で、Ant スタイルのロケーションパターンをサポートしています。たとえば Web 環境など、拡張解決戦略のために、サブクラスでオーバーライドできます。
ロケーションパターンを解決する必要がある場合は、これを呼び出さないでください。代わりに、コンテキストの getResources
メソッドを呼び出します。これにより、ResourcePatternResolver に委譲されます。
getResources(java.lang.String)
, PathMatchingResourcePatternResolver
public void setParent(@Nullable ApplicationContext parent)
親が非 null
であり、その環境が ConfigurableEnvironment
のインスタンスである場合、親環境はこの(子)アプリケーションコンテキスト環境とマージされます。
ConfigurableApplicationContext
の setParent
parent
- 親コンテキスト ConfigurableEnvironment.merge(ConfigurableEnvironment)
public void addBeanFactoryPostProcessor(BeanFactoryPostProcessor postProcessor)
ConfigurableApplicationContext
ConfigurableApplicationContext
の addBeanFactoryPostProcessor
postProcessor
- 登録するファクトリプロセッサー public ListSE<BeanFactoryPostProcessor> getBeanFactoryPostProcessors()
public void addApplicationListener(ApplicationListener<?> listener)
ConfigurableApplicationContext
ここに登録されている ApplicationListener は、コンテキストがまだアクティブでない場合はリフレッシュ時に適用されます。コンテキストがすでにアクティブな場合は、現在のイベントマルチキャスターでオンザフライで適用されます。
ConfigurableApplicationContext
の addApplicationListener
listener
- 登録する ApplicationListenerContextRefreshedEvent
, ContextClosedEvent
public CollectionSE<ApplicationListener<?>> getApplicationListeners()
public void refresh() throws BeansException, IllegalStateExceptionSE
ConfigurableApplicationContext
これはスタートアップメソッドであるため、リソースがぶら下がらないように、失敗した場合はすでに作成されているシングルトンを破棄する必要があります。つまり、このメソッドを呼び出した後は、シングルトンをインスタンス化するか、まったくインスタンス化しないかのどちらかです。
ConfigurableApplicationContext
の refresh
BeansException
- Bean ファクトリを初期化できなかった場合 IllegalStateExceptionSE
- すでに初期化されていて、複数回のリフレッシュ試行がサポートされていない場合 protected void prepareRefresh()
protected void initPropertySources()
スタブプロパティソースを実際のインスタンスに置き換えます。
protected ConfigurableListableBeanFactory obtainFreshBeanFactory()
refreshBeanFactory()
, getBeanFactory()
protected void prepareBeanFactory(ConfigurableListableBeanFactory beanFactory)
beanFactory
- 設定する BeanFactoryprotected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
beanFactory
- アプリケーションコンテキストで使用される Bean ファクトリ protected void invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory beanFactory)
シングルトンのインスタンス化の前に呼び出す必要があります。
protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFactory)
アプリケーション Bean をインスタンス化する前に呼び出す必要があります。
protected void initMessageSource()
protected void initApplicationEventMulticaster()
protected void initLifecycleProcessor()
protected void onRefresh() throws BeansException
この実装は空です。
BeansException
- エラーの場合 refresh()
protected void registerListeners()
protected void finishBeanFactoryInitialization(ConfigurableListableBeanFactory beanFactory)
protected void finishRefresh()
ContextRefreshedEvent
を公開します。protected void cancelRefresh(BeansException ex)
active
フラグをリセットします。ex
- キャンセルに至った例外 protected void resetCommonCaches()
ReflectionUtils
、AnnotationUtils
、ResolvableType
および CachedIntrospectionResults
キャッシュをリセットします。public void registerShutdownHook()
SpringContextShutdownHook
という名前SEのシャットダウンフックを JVM ランタイムに登録し、その時点ですでに閉じられていない限り、JVM シャットダウン時にこのコンテキストを閉じます。 実際のクロージング手順については、doClose()
に委譲します。
@DeprecatedSE public void destroy()
close()
に置き換えられました。DisposableBean
実装にアタッチされていました(5.0 ではもう使用されていません)。close()
メソッドは、ApplicationContext をシャットダウンするネイティブな方法であり、このメソッドが委譲するだけです。
public void close()
実際のクロージング手順については、doClose()
に委譲します。また、JVM シャットダウンフックが登録されている場合は、不要になったため削除します。
CloseableSE
の closeSE
AutoCloseableSE
の closeSE
ConfigurableApplicationContext
の close
doClose()
, registerShutdownHook()
protected void doClose()
close()
と JVM シャットダウンフック(存在する場合)の両方によって呼び出されます。
protected void destroyBeans()
DisposableBean.destroy()
または指定された「破棄メソッド」、あるいはその両方を呼び出します。オーバーライドして、コンテキストの BeanFactory がアクティブな間に、標準のシングルトン破棄の直前または直後にコンテキスト固有の Bean 破棄ステップを追加できます。
protected void onClose()
このコンテキストの BeanFactory が閉じられた後、doClose()
のシャットダウン手順の最後に呼び出されます。BeanFactory がアクティブな間にカスタムシャットダウンロジックを実行する必要がある場合は、代わりに destroyBeans()
メソッドをオーバーライドします。
public boolean isActive()
ConfigurableApplicationContext
ConfigurableApplicationContext
の isActive
ConfigurableApplicationContext.refresh()
, ConfigurableApplicationContext.close()
, ConfigurableApplicationContext.getBeanFactory()
protected void assertBeanFactoryActive()
IllegalStateException
SE をスローします。 アクティブなコンテキストに依存するすべての BeanFactory
委譲メソッド、特にすべての Bean アクセサーメソッドによって呼び出されます。
デフォルトの実装では、このコンテキスト全体の 'active'
ステータスをチェックします。より具体的なチェックの場合、またはそのような場合に getBeanFactory()
自体が例外をスローする場合は何もしない場合はオーバーライドされます。
public ObjectSE getBean(StringSE name) throws BeansException
BeanFactory
この方法では、Spring BeanFactory をシングルトンまたはプロトタイプの設計パターンの代わりとして使用できます。シングルトン Bean の場合、呼び出し元は返されたオブジェクトへの参照を保持できます。
エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
BeanFactory
の getBean
name
- 取得する Bean の名前 NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 BeansException
- Bean を取得できなかった場合 public <T> T getBean(StringSE name, ClassSE<T> requiredType) throws BeansException
BeanFactory
BeanFactory.getBean(String)
と同じように動作しますが、Bean が必要な型でない場合は BeanNotOfRequiredTypeException をスローすることにより、型安全の基準を提供します。これは、BeanFactory.getBean(String)
で発生する可能性があるように、結果を正しくキャストすると ClassCastException がスローされないことを意味します。
エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
BeanFactory
の getBean
name
- 取得する Bean の名前 requiredType
- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます NoSuchBeanDefinitionException
- そのような Bean 定義がない場合 BeanNotOfRequiredTypeException
- Bean が必要な型でない場合 BeansException
- Bean を作成できなかった場合 public ObjectSE getBean(StringSE name, ObjectSE... args) throws BeansException
BeanFactory
Bean 定義で指定されたデフォルト引数(存在する場合)をオーバーライドして、明示的なコンストラクター引数 / ファクトリメソッド引数を指定できます。
BeanFactory
の getBean
name
- 取得する Bean の名前 args
- 明示的な引数を使用して Bean インスタンスを作成するときに使用する引数 (既存のインスタンスを取得するのではなく、新しいインスタンスを作成するときにのみ適用されます)NoSuchBeanDefinitionException
- そのような Bean 定義がない場合 BeanDefinitionStoreException
- 引数は指定されているが、影響を受ける Bean がプロトタイプではない場合 BeansException
- Bean を作成できなかった場合 public <T> T getBean(ClassSE<T> requiredType) throws BeansException
BeanFactory
このメソッドは、ListableBeanFactory
の型別ルックアップ領域に入りますが、指定された型の名前に基づいた従来の名前別ルックアップにも変換できます。Bean のセット全体でより広範な検索操作を行うには、ListableBeanFactory
または BeanFactoryUtils
(あるいはその両方)を使用します。
BeanFactory
の getBean
requiredType
- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます NoSuchBeanDefinitionException
- 指定された型の Bean が見つからなかった場合 NoUniqueBeanDefinitionException
- 指定された型の複数の Bean が見つかった場合 BeansException
- Bean を作成できなかった場合 ListableBeanFactory
public <T> T getBean(ClassSE<T> requiredType, ObjectSE... args) throws BeansException
BeanFactory
Bean 定義で指定されたデフォルト引数(存在する場合)をオーバーライドして、明示的なコンストラクター引数 / ファクトリメソッド引数を指定できます。
このメソッドは、ListableBeanFactory
の型別ルックアップ領域に入りますが、指定された型の名前に基づいた従来の名前別ルックアップにも変換できます。Bean のセット全体でより広範な検索操作を行うには、ListableBeanFactory
または BeanFactoryUtils
(あるいはその両方)を使用します。
BeanFactory
の getBean
requiredType
- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます args
- 明示的な引数を使用して Bean インスタンスを作成するときに使用する引数 (既存のインスタンスを取得するのではなく、新しいインスタンスを作成するときにのみ適用されます)NoSuchBeanDefinitionException
- そのような Bean 定義がない場合 BeanDefinitionStoreException
- 引数は指定されているが、影響を受ける Bean がプロトタイプではない場合 BeansException
- Bean を作成できなかった場合 public <T> ObjectProvider<T> getBeanProvider(ClassSE<T> requiredType)
BeanFactory
ジェネリクス型を照合するには、BeanFactory.getBeanProvider(ResolvableType)
を検討してください。
BeanFactory
の getBeanProvider
requiredType
- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます BeanFactory.getBeanProvider(ResolvableType)
public <T> ObjectProvider<T> getBeanProvider(ResolvableType requiredType)
BeanFactory
リフレクティブインジェクションポイントとは対照的に、ここでは Bean のコレクションはサポートされていないことに注意してください。特定の型に一致する Bean のリストをプログラムで取得するには、ここで引数として実際の Bean 型を指定し、その後 ObjectProvider.orderedStream()
またはその遅延ストリーミング / 反復オプションを使用します。
また、Java の割り当て規則に従って、ジェネリクスのマッチングはここでは厳密です。未チェックのセマンティクス(「未チェック」の Java コンパイラー警告と同様)を使用した寛大なフォールバックマッチングの場合、このバリアントとの完全な汎用一致が available
でない場合は、2 番目のステップとして raw 型を使用して BeanFactory.getBeanProvider(Class)
を呼び出すことを検討してください。
BeanFactory
の getBeanProvider
requiredType
- Bean が一致する必要があると入力します。ジェネリクス型宣言にすることができます ObjectProvider.iterator()
, ObjectProvider.stream()
, ObjectProvider.orderedStream()
public boolean containsBean(StringSE name)
BeanFactory
指定された名前がエイリアスの場合、対応する正規の Bean 名に変換されます。
このファクトリが階層的である場合、このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに問い合わせます。
指定された名前に一致する Bean 定義またはシングルトンインスタンスが見つかった場合、このメソッドは、名前付き Bean 定義がスコープ内で具体的または抽象的、遅延または先行であるかどうかにかかわらず、true
を返します。このメソッドからの true
戻り値は、必ずしも BeanFactory.getBean(java.lang.String)
が同じ名前のインスタンスを取得できることを示しているわけではないことに注意してください。
BeanFactory
の containsBean
name
- 照会する Bean の名前 public boolean isSingleton(StringSE name) throws NoSuchBeanDefinitionException
BeanFactory
BeanFactory.getBean(java.lang.String)
は常に同じインスタンスを返しますか? メモ: false
を返すこのメソッドは、独立したインスタンスを明確に示していません。これは、スコープが設定された Bean にも対応している可能性がある非シングルトンインスタンスを示します。BeanFactory.isPrototype(java.lang.String)
操作を使用して、独立したインスタンスを明示的にチェックします。
エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
BeanFactory
の isSingleton
name
- 照会する Bean の名前 NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 BeanFactory.getBean(java.lang.String)
, BeanFactory.isPrototype(java.lang.String)
public boolean isPrototype(StringSE name) throws NoSuchBeanDefinitionException
BeanFactory
BeanFactory.getBean(java.lang.String)
は常に独立したインスタンスを返しますか? メモ: false
を返すこのメソッドは、シングルトンオブジェクトを明確に示していません。これは独立したインスタンスを示し、スコープ付き Bean にも対応する場合があります。BeanFactory.isSingleton(java.lang.String)
操作を使用して、共有シングルトンインスタンスを明示的に確認します。
エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
BeanFactory
の isPrototype
name
- 照会する Bean の名前 NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 BeanFactory.getBean(java.lang.String)
, BeanFactory.isSingleton(java.lang.String)
public boolean isTypeMatch(StringSE name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException
BeanFactory
BeanFactory.getBean(java.lang.String)
呼び出しが、指定されたターゲット型に割り当て可能なオブジェクトを返すかどうかを確認します。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
BeanFactory
の isTypeMatch
name
- 照会する Bean の名前 typeToMatch
- 照合する型 (ResolvableType
として)true
、一致しないかまだ判別できない場合は false
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 BeanFactory.getBean(java.lang.String)
, BeanFactory.getType(java.lang.String)
public boolean isTypeMatch(StringSE name, ClassSE<?> typeToMatch) throws NoSuchBeanDefinitionException
BeanFactory
BeanFactory.getBean(java.lang.String)
呼び出しが、指定されたターゲット型に割り当て可能なオブジェクトを返すかどうかを確認します。エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
BeanFactory
の isTypeMatch
name
- 照会する Bean の名前 typeToMatch
- 照合する型 (Class
として)true
、一致しないかまだ判別できない場合は false
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 BeanFactory.getBean(java.lang.String)
, BeanFactory.getType(java.lang.String)
@Nullable public ClassSE<?> getType(StringSE name) throws NoSuchBeanDefinitionException
BeanFactory
BeanFactory.getBean(java.lang.String)
が返すオブジェクトの型を決定します。FactoryBean
の場合は、FactoryBean.getObjectType()
によって公開されている、FactoryBean が作成するオブジェクトの型を返します。これにより、以前に初期化されていない FactoryBean
(BeanFactory.getType(String, boolean)
を参照)が初期化される可能性があります。
エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
BeanFactory
の getType
name
- 照会する Bean の名前 null
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 BeanFactory.getBean(java.lang.String)
, BeanFactory.isTypeMatch(java.lang.String, org.springframework.core.ResolvableType)
@Nullable public ClassSE<?> getType(StringSE name, boolean allowFactoryBeanInit) throws NoSuchBeanDefinitionException
BeanFactory
BeanFactory.getBean(java.lang.String)
が返すオブジェクトの型を決定します。FactoryBean
の場合は、FactoryBean.getObjectType()
によって公開されている、FactoryBean が作成するオブジェクトの型を返します。allowFactoryBeanInit
フラグによっては、初期の型情報が利用できない場合、以前に初期化されていない FactoryBean
が初期化される可能性があります。
エイリアスを対応する正規の Bean 名に変換します。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
BeanFactory
の getType
name
- 照会する Bean の名前 allowFactoryBeanInit
- FactoryBean
がオブジェクト型を判別する目的でのみ初期化されるかどうか null
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 BeanFactory.getBean(java.lang.String)
, BeanFactory.isTypeMatch(java.lang.String, org.springframework.core.ResolvableType)
public StringSE[] getAliases(StringSE name)
BeanFactory
これらのエイリアスはすべて、BeanFactory.getBean(java.lang.String)
呼び出しで使用される場合、同じ Bean を指します。
指定された名前がエイリアスの場合、対応する元の Bean 名と他のエイリアス(存在する場合)が返され、元の Bean 名が配列の最初の要素になります。
このファクトリインスタンスで Bean が見つからないかどうかを親ファクトリに確認します。
BeanFactory
の getAliases
name
- エイリアスをチェックする Bean 名 BeanFactory.getBean(java.lang.String)
public boolean containsBeanDefinition(StringSE beanName)
ListableBeanFactory
このファクトリが参加する可能性のある階層を考慮せず、Bean 定義以外の方法で登録されたシングルトン Bean を無視します。
ListableBeanFactory
の containsBeanDefinition
beanName
- 検索する Bean の名前 BeanFactory.containsBean(java.lang.String)
public int getBeanDefinitionCount()
ListableBeanFactory
このファクトリが参加する可能性のある階層を考慮せず、Bean 定義以外の方法で登録されたシングルトン Bean を無視します。
ListableBeanFactory
の getBeanDefinitionCount
public StringSE[] getBeanDefinitionNames()
ListableBeanFactory
このファクトリが参加する可能性のある階層を考慮せず、Bean 定義以外の方法で登録されたシングルトン Bean を無視します。
ListableBeanFactory
の getBeanDefinitionNames
public <T> ObjectProvider<T> getBeanProvider(ClassSE<T> requiredType, boolean allowEagerInit)
ListableBeanFactory
ListableBeanFactory
の getBeanProvider
requiredType
- Bean が一致する必要があることを入力します。インターフェースまたはスーパークラスにすることができます allowEagerInit
- ストリームベースのアクセスが、型チェックのために FactoryBeans (または "factory-bean" 参照を使用するファクトリメソッド)によって作成された lazy-init シングルトンおよびオブジェクトを初期化できるかどうか ListableBeanFactory.getBeanProvider(ResolvableType, boolean)
, BeanFactory.getBeanProvider(Class)
, ListableBeanFactory.getBeansOfType(Class, boolean, boolean)
, ListableBeanFactory.getBeanNamesForType(Class, boolean, boolean)
public <T> ObjectProvider<T> getBeanProvider(ResolvableType requiredType, boolean allowEagerInit)
ListableBeanFactory
ListableBeanFactory
の getBeanProvider
requiredType
- Bean が一致する必要がある型。ジェネリクス型宣言にすることができます。ここでは、反射インジェクションポイントとは対照的に、コレクション型はサポートされていません。プログラムで特定の型に一致する Bean のリストを取得するには、実際の Bean 型をここで引数として指定し、その後 ObjectProvider.orderedStream()
またはその遅延ストリーミング / 反復オプションを使用します。allowEagerInit
- ストリームベースのアクセスが、型チェックのために FactoryBeans (または "factory-bean" 参照を使用するファクトリメソッド)によって作成された lazy-init シングルトンおよびオブジェクトを初期化できるかどうか BeanFactory.getBeanProvider(ResolvableType)
, ObjectProvider.iterator()
, ObjectProvider.stream()
, ObjectProvider.orderedStream()
, ListableBeanFactory.getBeanNamesForType(ResolvableType, boolean, boolean)
public StringSE[] getBeanNamesForType(ResolvableType type)
ListableBeanFactory
getObjectType
の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beanNamesForTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このバージョンの getBeanNamesForType
は、シングルトン、プロトタイプ、FactoryBeans など、あらゆる種類の Bean に一致します。ほとんどの実装では、結果は getBeanNamesForType(type, true, true)
の場合と同じになります。
このメソッドによって返される Bean 名は、常に、可能な限りバックエンド構成での定義順に Bean 名を返す必要があります。
ListableBeanFactory
の getBeanNamesForType
type
- 一致する一般的に型指定されたクラスまたはインターフェース BeanFactory.isTypeMatch(String, ResolvableType)
, FactoryBean.getObjectType()
, BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ListableBeanFactory, ResolvableType)
public StringSE[] getBeanNamesForType(ResolvableType type, boolean includeNonSingletons, boolean allowEagerInit)
ListableBeanFactory
getObjectType
の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
"allowEagerInit" フラグが設定されている場合は、FactoryBeans によって作成されたオブジェクトを考慮します。つまり、FactoryBeans が初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合は、生の FactoryBean 自体が型と照合されます。"allowEagerInit" が設定されていない場合は、生の FactoryBeans のみがチェックされます (各 FactoryBean の初期化は必要ありません)。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beanNamesForTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このメソッドによって返される Bean 名は、常に、可能な限りバックエンド構成での定義順に Bean 名を返す必要があります。
ListableBeanFactory
の getBeanNamesForType
type
- 一致する一般的に型指定されたクラスまたはインターフェース includeNonSingletons
- プロトタイプ Bean またはスコープ Bean も含めるか、シングルトンのみを含めるか (FactoryBeans にも適用)allowEagerInit
- 型チェックのために FactoryBeans (または "factory-bean" 参照を含むファクトリメソッド)によって作成された lazy-init シングルトンとオブジェクトを初期化するかどうか。FactoryBeans は、型を判別するために積極的に初期化する必要があることに注意してください。このフラグに "true" を渡すと、FactoryBeans および "factory-bean" 参照が初期化されることに注意してください。FactoryBean.getObjectType()
, BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ListableBeanFactory, ResolvableType, boolean, boolean)
public StringSE[] getBeanNamesForType(@Nullable ClassSE<?> type)
ListableBeanFactory
getObjectType
の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beanNamesForTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このバージョンの getBeanNamesForType
は、シングルトン、プロトタイプ、FactoryBeans など、あらゆる種類の Bean に一致します。ほとんどの実装では、結果は getBeanNamesForType(type, true, true)
の場合と同じになります。
このメソッドによって返される Bean 名は、常に、可能な限りバックエンド構成での定義順に Bean 名を返す必要があります。
ListableBeanFactory
の getBeanNamesForType
type
- 一致させるクラスまたはインターフェース、またはすべての Bean 名の null
FactoryBean.getObjectType()
, BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ListableBeanFactory, Class)
public StringSE[] getBeanNamesForType(@Nullable ClassSE<?> type, boolean includeNonSingletons, boolean allowEagerInit)
ListableBeanFactory
getObjectType
の値から判断して、指定された型(サブクラスを含む)に一致する Bean の名前を返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
"allowEagerInit" フラグが設定されている場合は、FactoryBeans によって作成されたオブジェクトを考慮します。つまり、FactoryBeans が初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合は、生の FactoryBean 自体が型と照合されます。"allowEagerInit" が設定されていない場合は、生の FactoryBeans のみがチェックされます (各 FactoryBean の初期化は必要ありません)。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beanNamesForTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このメソッドによって返される Bean 名は、常に、可能な限りバックエンド構成での定義順に Bean 名を返す必要があります。
ListableBeanFactory
の getBeanNamesForType
type
- 一致させるクラスまたはインターフェース、またはすべての Bean 名の null
includeNonSingletons
- プロトタイプ Bean またはスコープ Bean も含めるか、シングルトンのみを含めるか (FactoryBeans にも適用)allowEagerInit
- 型チェックのために FactoryBeans (または "factory-bean" 参照を含むファクトリメソッド)によって作成された lazy-init シングルトンとオブジェクトを初期化するかどうか。FactoryBeans は、型を判別するために積極的に初期化する必要があることに注意してください。このフラグに "true" を渡すと、FactoryBeans および "factory-bean" 参照が初期化されることに注意してください。FactoryBean.getObjectType()
, BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ListableBeanFactory, Class, boolean, boolean)
public <T> MapSE<StringSE,T> getBeansOfType(@Nullable ClassSE<T> type) throws BeansException
ListableBeanFactory
getObjectType
の値から判断して、指定されたオブジェクト型(サブクラスを含む)に一致する Bean インスタンスを返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
FactoryBeans によって作成されたオブジェクトは考慮されません。つまり、FactoryBeans は初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合、生の FactoryBean 自体が型と一致します。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beansOfTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このバージョンの getBeansOfType は、シングルトン、プロトタイプ、FactoryBeans など、あらゆる種類の Bean に一致します。ほとんどの実装では、結果は getBeansOfType(type, true, true)
の場合と同じになります。
このメソッドによって返されるマップは、常に、可能な限り、バックエンド構成での定義順に Bean 名と対応する Bean インスタンスを返す必要があります。
ListableBeanFactory
の getBeansOfType
type
- 一致するクラスまたはインターフェース、またはすべての具象 Bean の null
BeansException
- Bean を作成できなかった場合 FactoryBean.getObjectType()
, BeanFactoryUtils.beansOfTypeIncludingAncestors(ListableBeanFactory, Class)
public <T> MapSE<StringSE,T> getBeansOfType(@Nullable ClassSE<T> type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException
ListableBeanFactory
getObjectType
の値から判断して、指定されたオブジェクト型(サブクラスを含む)に一致する Bean インスタンスを返します。注: このメソッドは、最上位の Bean のみをイントロスペクトします。指定された型と一致する可能性のあるネストされた Bean もチェックしません。
"allowEagerInit" フラグが設定されている場合は、FactoryBeans によって作成されたオブジェクトを考慮します。つまり、FactoryBeans が初期化されます。FactoryBean によって作成されたオブジェクトが一致しない場合は、生の FactoryBean 自体が型と照合されます。"allowEagerInit" が設定されていない場合は、生の FactoryBeans のみがチェックされます (各 FactoryBean の初期化は必要ありません)。
このファクトリが参加する可能性のある階層を考慮しません。BeanFactoryUtils の beansOfTypeIncludingAncestors
を使用して、祖先ファクトリにも Bean を含めます。
メモ: Bean 定義以外の方法で登録されたシングルトン Bean を無視しません。
このメソッドによって返されるマップは、常に、可能な限り、バックエンド構成での定義順に Bean 名と対応する Bean インスタンスを返す必要があります。
ListableBeanFactory
の getBeansOfType
type
- 一致するクラスまたはインターフェース、またはすべての具象 Bean の null
includeNonSingletons
- プロトタイプ Bean またはスコープ Bean も含めるか、シングルトンのみを含めるか (FactoryBeans にも適用)allowEagerInit
- 型チェックのために FactoryBeans (または "factory-bean" 参照を含むファクトリメソッド)によって作成された lazy-init シングルトンとオブジェクトを初期化するかどうか。FactoryBeans は、型を判別するために積極的に初期化する必要があることに注意してください。このフラグに "true" を渡すと、FactoryBeans および "factory-bean" 参照が初期化されることに注意してください。BeansException
- Bean を作成できなかった場合 FactoryBean.getObjectType()
, BeanFactoryUtils.beansOfTypeIncludingAncestors(ListableBeanFactory, Class, boolean, boolean)
public StringSE[] getBeanNamesForAnnotation(ClassSE<? extends AnnotationSE> annotationType)
ListableBeanFactory
Annotation
SE 型でアノテーションが付けられている Bean のすべての名前を検索します。このメソッドは FactoryBeans によって作成されたオブジェクトを考慮することに注意してください。つまり、FactoryBeans はオブジェクト型を決定するために初期化されます。
ListableBeanFactory
の getBeanNamesForAnnotation
annotationType
- 検索するアノテーションの型 (指定された Bean のクラス、インターフェース、ファクトリメソッドレベル)ListableBeanFactory.findAnnotationOnBean(java.lang.String, java.lang.Class<A>)
public MapSE<StringSE,ObjectSE> getBeansWithAnnotation(ClassSE<? extends AnnotationSE> annotationType) throws BeansException
ListableBeanFactory
Annotation
SE 型でアノテーションが付けられたすべての Bean を検索し、対応する Bean インスタンスを持つ Bean 名のマップを返します。このメソッドは FactoryBeans によって作成されたオブジェクトを考慮することに注意してください。つまり、FactoryBeans はオブジェクト型を決定するために初期化されます。
ListableBeanFactory
の getBeansWithAnnotation
annotationType
- 検索するアノテーションの型 (指定された Bean のクラス、インターフェース、ファクトリメソッドレベル)BeansException
- Bean を作成できなかった場合 ListableBeanFactory.findAnnotationOnBean(java.lang.String, java.lang.Class<A>)
@Nullable public <A extends AnnotationSE> A findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType) throws NoSuchBeanDefinitionException
ListableBeanFactory
annotationType
の Annotation
SE を見つけ、指定されたクラス自体にアノテーションが見つからない場合はそのインターフェースとスーパークラスをトラバースし、Bean のファクトリメソッド(存在する場合)を確認します。ListableBeanFactory
の findAnnotationOnBean
beanName
- アノテーションを探す Bean の名前 annotationType
- 検索するアノテーションの型 (指定された Bean のクラス、インターフェース、ファクトリメソッドレベル)null
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 ListableBeanFactory.getBeanNamesForAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)
, ListableBeanFactory.getBeansWithAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)
, BeanFactory.getType(String)
@Nullable public <A extends AnnotationSE> A findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType, boolean allowFactoryBeanInit) throws NoSuchBeanDefinitionException
ListableBeanFactory
annotationType
の Annotation
SE を見つけ、指定されたクラス自体にアノテーションが見つからない場合はそのインターフェースとスーパークラスをトラバースし、Bean のファクトリメソッド(存在する場合)を確認します。ListableBeanFactory
の findAnnotationOnBean
beanName
- アノテーションを探す Bean の名前 annotationType
- 検索するアノテーションの型 (指定された Bean のクラス、インターフェース、ファクトリメソッドレベル)allowFactoryBeanInit
- FactoryBean
がオブジェクト型を判別する目的でのみ初期化されるかどうか null
NoSuchBeanDefinitionException
- 指定された名前の Bean がない場合 ListableBeanFactory.getBeanNamesForAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)
, ListableBeanFactory.getBeansWithAnnotation(java.lang.Class<? extends java.lang.annotation.Annotation>)
, BeanFactory.getType(String, boolean)
@Nullable public BeanFactory getParentBeanFactory()
HierarchicalBeanFactory
null
を返します。HierarchicalBeanFactory
の getParentBeanFactory
public boolean containsLocalBean(StringSE name)
HierarchicalBeanFactory
これは containsBean
の代替であり、祖先の Bean ファクトリから指定された名前の Bean を無視します。
HierarchicalBeanFactory
の containsLocalBean
name
- 照会する Bean の名前 BeanFactory.containsBean(java.lang.String)
@Nullable protected BeanFactory getInternalParentBeanFactory()
public StringSE getMessage(StringSE code, @Nullable ObjectSE[] args, @Nullable StringSE defaultMessage, LocaleSE locale)
MessageSource
MessageSource
の getMessage
code
- 検索するメッセージコード。"calculator.noRateSet"。MessageSource ユーザーは、潜在的な競合を回避し、最大限の明確性を確保して、修飾されたクラスまたはパッケージ名に基づいてメッセージ名を作成することをお勧めします。args
- メッセージ内のパラメーター(パラメーターはメッセージ内で "{0}", "{1,date}", "{2,time}" のように見えます)、または存在しない場合は null
に入力される引数の配列 defaultMessage
- ルックアップが失敗した場合に返すデフォルトのメッセージ locale
- ルックアップを行うロケール null
の可能性があります)MessageSource.getMessage(MessageSourceResolvable, Locale)
, MessageFormat
SEpublic StringSE getMessage(StringSE code, @Nullable ObjectSE[] args, LocaleSE locale) throws NoSuchMessageException
MessageSource
MessageSource
の getMessage
code
- 検索するメッセージコード。"calculator.noRateSet"。MessageSource ユーザーは、潜在的な競合を回避し、最大限の明確性を確保して、修飾されたクラスまたはパッケージ名に基づいてメッセージ名を作成することをお勧めします。args
- メッセージ内のパラメーター(パラメーターはメッセージ内で "{0}", "{1,date}", "{2,time}" のように見えます)、または存在しない場合は null
に入力される引数の配列 locale
- ルックアップを行うロケール null
)NoSuchMessageException
- 対応するメッセージが見つからなかった場合 MessageSource.getMessage(MessageSourceResolvable, Locale)
, MessageFormat
SEpublic StringSE getMessage(MessageSourceResolvable resolvable, LocaleSE locale) throws NoSuchMessageException
MessageSource
MessageSourceResolvable
引数内に含まれるすべての属性を使用して、メッセージの解決を試みます。NOTE: このメソッドを呼び出す時点で、解決可能なオブジェクトの defaultMessage
プロパティが null
であるかどうかを判断できないため、このメソッドで NoSuchMessageException
をスローする必要があります。
MessageSource
の getMessage
resolvable
- メッセージの解決に必要な属性を格納する値オブジェクト (デフォルトのメッセージを含めることができます)locale
- ルックアップを行うロケール MessageSourceResolvable
-provided のデフォルトメッセージでさえ null 以外である必要があるため、null
を使用しない)NoSuchMessageException
- 対応するメッセージが見つからなかった場合 (MessageSourceResolvable
によって提供されるデフォルトメッセージはありません)MessageSourceResolvable.getCodes()
, MessageSourceResolvable.getArguments()
, MessageSourceResolvable.getDefaultMessage()
, MessageFormat
SE@Nullable protected MessageSource getInternalParentMessageSource()
public Resource[] getResources(StringSE locationPattern) throws IOExceptionSE
ResourcePatternResolver
Resource
オブジェクトに解決します。同じ物理リソースを指すリソースエントリの重複は、できる限り避ける必要があります。結果にはセマンティクスが設定されている必要があります。
ResourcePatternResolver
の getResources
locationPattern
- 解決する位置パターン Resource
オブジェクト IOExceptionSE
- I/O エラーの場合 public void start()
Lifecycle
コンポーネントがすでに実行されている場合は、例外をスローしないでください。
コンテナーの場合、これは適用されるすべてのコンポーネントに開始シグナルを伝播します。
Lifecycle
の start
SmartLifecycle.isAutoStartup()
public void stop()
Lifecycle
SmartLifecycle
とその stop(Runnable)
バリアントの実装を検討してください。 この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、Lifecycle
Bean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止シグナルを事前に考慮することなく呼び出されます。
コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。
コンテナーの場合、これは停止シグナルを適用するすべてのコンポーネントに伝播します。
Lifecycle
の stop
SmartLifecycle.stop(Runnable)
, DisposableBean.destroy()
public boolean isRunning()
Lifecycle
コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、true
を返します。
protected abstract void refreshBeanFactory() throws BeansException, IllegalStateExceptionSE
refresh()
によって呼び出されます。サブクラスは、新しい Bean ファクトリを作成してそれへの参照を保持するか、保持する単一の BeanFactory インスタンスを返します。後者の場合、コンテキストを複数回リフレッシュすると、通常は IllegalStateException がスローされます。
BeansException
- Bean ファクトリの初期化が失敗した場合 IllegalStateExceptionSE
- すでに初期化されていて、複数回のリフレッシュ試行がサポートされていない場合 protected abstract void closeBeanFactory()
close()
によって呼び出されます。例外をスローするべきではなく、シャットダウンの失敗をログに記録します。
public abstract ConfigurableListableBeanFactory getBeanFactory() throws IllegalStateExceptionSE
メモ: サブクラスは、内部 Bean ファクトリを返す前に、コンテキストがまだアクティブかどうかを確認する必要があります。コンテキストが閉じられると、内部ファクトリは通常、使用不可と見なされます。
ConfigurableApplicationContext
の getBeanFactory
null
)IllegalStateExceptionSE
- コンテキストが内部 Bean ファクトリをまだ保持していない場合(通常は refresh()
が呼び出されていない場合)、またはコンテキストがすでに閉じられている場合 refreshBeanFactory()
, closeBeanFactory()
public StringSE toString()
ObjectSE
の toStringSE