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, MessageSourceDefaultResourceLoader.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_NAMEFACTORY_BEAN_PREFIXCLASSPATH_ALL_URL_PREFIXCLASSPATH_URL_PREFIX| コンストラクターと説明 |
|---|
AbstractApplicationContext() 親なしで新しい AbstractApplicationContext を作成します。 |
AbstractApplicationContext(ApplicationContext parent) 指定された親コンテキストで新しい AbstractApplicationContext を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | addApplicationListener(ApplicationListener<?> listener) コンテキストのリフレッシュやシャットダウンなどのコンテキストイベントで通知される新しい ApplicationListener を追加します。 |
void | addBeanFactoryPostProcessor(BeanFactoryPostProcessor postProcessor)Bean 定義のいずれかが評価される前に、リフレッシュ時にこのアプリケーションコンテキストの内部 Bean ファクトリに適用される新しい BeanFactoryPostProcessor を追加します。 |
protected void | assertBeanFactoryActive() このコンテキストの BeanFactory が現在アクティブであることをアサートし、アクティブでない場合は IllegalStateExceptionSE をスローします。 |
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 の AnnotationSE を検索し、指定されたクラス自体にアノテーションが見つからない場合はインターフェースとスーパークラスを走査し、Bean のファクトリメソッド(存在する場合)を確認します。 |
<A extends AnnotationSE> | findAnnotationOnBean(StringSE beanName, ClassSE<A> annotationType, boolean allowFactoryBeanInit) 指定された Bean で annotationType の AnnotationSE を検索し、指定されたクラス自体にアノテーションが見つからない場合はインターフェースとスーパークラスを走査し、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 インスタンスをまだ作成せずに、提供された AnnotationSE 型でアノテーションが付けられている 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) 指定された AnnotationSE 型でアノテーションが付けられたすべての 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, setClassLoadercloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSEaddProtocolResolver, setClassLoadergetClassLoader, getResourcepublic 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()
ApplicationContextApplicationContext の getId null public StringSE getApplicationName()
ApplicationContextApplicationContext の 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, ContextClosedEventpublic void publishEvent(ObjectSE event)
メモ: リスナーは、MessageSource の後に初期化され、リスナー実装内でそれにアクセスできるようになります。MessageSource 実装はイベントを公開できません。
ApplicationEventPublisher の publishEvent event - 公開するイベント (ApplicationEvent または PayloadApplicationEvent に変換されるペイロードオブジェクト)ApplicationEventPublisher.publishEvent(ApplicationEvent), PayloadApplicationEventprotected void publishEvent(ObjectSE event, @Nullable ResolvableType eventType)
event - 公開するイベント (ApplicationEvent または PayloadApplicationEvent に変換されるペイロードオブジェクト)eventType - 解決済みのイベント型(わかっている場合)public void setApplicationStartup(ApplicationStartup applicationStartup)
ConfigurableApplicationContextApplicationStartup を設定します。これにより、アプリケーションコンテキストは起動時にメトリクスを記録できます。
ConfigurableApplicationContext の setApplicationStartup applicationStartup - 新しいコンテキストイベントファクトリ public ApplicationStartup getApplicationStartup()
ConfigurableApplicationContextApplicationStartup を返します。ConfigurableApplicationContext の getApplicationStartup protected ResourcePatternResolver getResourcePatternResolver()
PathMatchingResourcePatternResolver で、Ant スタイルのロケーションパターンをサポートしています。たとえば Web 環境など、拡張解決戦略のために、サブクラスでオーバーライドできます。
ロケーションパターンを解決する必要がある場合は、これを呼び出さないでください。代わりに、コンテキストの getResources メソッドを呼び出します。これにより、ResourcePatternResolver に委譲されます。
getResources(java.lang.String), PathMatchingResourcePatternResolverpublic void setParent(@Nullable ApplicationContext parent)
親が非 null であり、その環境が ConfigurableEnvironment のインスタンスである場合、親環境はこの(子)アプリケーションコンテキスト環境とマージされます。
ConfigurableApplicationContext の setParent parent - 親コンテキスト ConfigurableEnvironment.merge(ConfigurableEnvironment)public void addBeanFactoryPostProcessor(BeanFactoryPostProcessor postProcessor)
ConfigurableApplicationContextConfigurableApplicationContext の addBeanFactoryPostProcessor postProcessor - 登録するファクトリプロセッサー public ListSE<BeanFactoryPostProcessor> getBeanFactoryPostProcessors()
public void addApplicationListener(ApplicationListener<?> listener)
ConfigurableApplicationContextここに登録されている ApplicationListener は、コンテキストがまだアクティブでない場合はリフレッシュ時に適用されます。コンテキストがすでにアクティブな場合は、現在のイベントマルチキャスターでオンザフライで適用されます。
ConfigurableApplicationContext の addApplicationListener listener - 登録する ApplicationListenerContextRefreshedEvent, ContextClosedEventpublic CollectionSE<ApplicationListener<?>> getApplicationListeners()
public void refresh()
throws BeansException,
IllegalStateExceptionSEConfigurableApplicationContextこれはスタートアップメソッドであるため、リソースがぶら下がらないように、失敗した場合はすでに作成されているシングルトンを破棄する必要があります。つまり、このメソッドを呼び出した後は、シングルトンをインスタンス化するか、まったくインスタンス化しないかのどちらかです。
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()
ConfigurableApplicationContextConfigurableApplicationContext の isActive ConfigurableApplicationContext.refresh(), ConfigurableApplicationContext.close(), ConfigurableApplicationContext.getBeanFactory()protected void assertBeanFactoryActive()
IllegalStateExceptionSE をスローします。 アクティブなコンテキストに依存するすべての 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
BeanFactoryBeanFactory.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
BeanFactoryBean 定義で指定されたデフォルト引数(存在する場合)をオーバーライドして、明示的なコンストラクター引数 / ファクトリメソッド引数を指定できます。
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 を作成できなかった場合 ListableBeanFactorypublic <T> T getBean(ClassSE<T> requiredType, ObjectSE... args) throws BeansException
BeanFactoryBean 定義で指定されたデフォルト引数(存在する場合)をオーバーライドして、明示的なコンストラクター引数 / ファクトリメソッド引数を指定できます。
このメソッドは、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
BeanFactoryBeanFactory.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
BeanFactoryBeanFactory.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
BeanFactoryBeanFactory.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
BeanFactoryBeanFactory.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
BeanFactoryBeanFactory.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
BeanFactoryBeanFactory.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)
ListableBeanFactoryListableBeanFactory の 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)
ListableBeanFactoryListableBeanFactory の 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)
ListableBeanFactorygetObjectType の値から判断して、指定された型(サブクラスを含む)に一致する 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)
ListableBeanFactorygetObjectType の値から判断して、指定された型(サブクラスを含む)に一致する 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)
ListableBeanFactorygetObjectType の値から判断して、指定された型(サブクラスを含む)に一致する 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)
ListableBeanFactorygetObjectType の値から判断して、指定された型(サブクラスを含む)に一致する 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
ListableBeanFactorygetObjectType の値から判断して、指定されたオブジェクト型(サブクラスを含む)に一致する 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
ListableBeanFactorygetObjectType の値から判断して、指定されたオブジェクト型(サブクラスを含む)に一致する 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)
ListableBeanFactoryAnnotationSE 型でアノテーションが付けられている 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
ListableBeanFactoryAnnotationSE 型でアノテーションが付けられたすべての 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
ListableBeanFactoryannotationType の AnnotationSE を検索し、指定されたクラス自体にアノテーションが見つからない場合はインターフェースとスーパークラスを走査し、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
ListableBeanFactoryannotationType の AnnotationSE を検索し、指定されたクラス自体にアノテーションが見つからない場合はインターフェースとスーパークラスを走査し、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()
HierarchicalBeanFactorynull を返します。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)
MessageSourceMessageSource の getMessage code - 検索するメッセージコード。"calculator.noRateSet"。MessageSource ユーザーは、潜在的な競合を回避し、最大限の明確性を確保して、修飾されたクラスまたはパッケージ名に基づいてメッセージ名を作成することをお勧めします。args - メッセージ内のパラメーター(パラメーターはメッセージ内で "{0}", "{1,date}", "{2,time}" のように見えます)、または存在しない場合は null に入力される引数の配列 defaultMessage - ルックアップが失敗した場合に返すデフォルトのメッセージ locale - ルックアップを行うロケール null の可能性があります)MessageSource.getMessage(MessageSourceResolvable, Locale), MessageFormatSEpublic StringSE getMessage(StringSE code, @Nullable ObjectSE[] args, LocaleSE locale) throws NoSuchMessageException
MessageSourceMessageSource の getMessage code - 検索するメッセージコード。"calculator.noRateSet"。MessageSource ユーザーは、潜在的な競合を回避し、最大限の明確性を確保して、修飾されたクラスまたはパッケージ名に基づいてメッセージ名を作成することをお勧めします。args - メッセージ内のパラメーター(パラメーターはメッセージ内で "{0}", "{1,date}", "{2,time}" のように見えます)、または存在しない場合は null に入力される引数の配列 locale - ルックアップを行うロケール null)NoSuchMessageException - 対応するメッセージが見つからなかった場合 MessageSource.getMessage(MessageSourceResolvable, Locale), MessageFormatSEpublic StringSE getMessage(MessageSourceResolvable resolvable, LocaleSE locale) throws NoSuchMessageException
MessageSourceMessageSourceResolvable 引数内に含まれるすべての属性を使用して、メッセージの解決を試みます。NOTE: このメソッドを呼び出す時点で、解決可能なオブジェクトの defaultMessage プロパティが null であるかどうかを判断できないため、このメソッドで NoSuchMessageException をスローする必要があります。
MessageSource の getMessage resolvable - メッセージの解決に必要な属性を格納する値オブジェクト (デフォルトのメッセージを含めることができます)locale - ルックアップを行うロケール MessageSourceResolvable -provided のデフォルトメッセージでさえ null 以外である必要があるため、null を使用しない)NoSuchMessageException - 対応するメッセージが見つからなかった場合 (MessageSourceResolvable によって提供されるデフォルトメッセージはありません)MessageSourceResolvable.getCodes(), MessageSourceResolvable.getArguments(), MessageSourceResolvable.getDefaultMessage(), MessageFormatSE@Nullable protected MessageSource getInternalParentMessageSource()
public Resource[] getResources(StringSE locationPattern) throws IOExceptionSE
ResourcePatternResolverResource オブジェクトに解決します。同じ物理リソースを指すリソースエントリの重複は、できる限り避ける必要があります。結果にはセマンティクスが設定されている必要があります。
ResourcePatternResolver の getResources locationPattern - 解決する位置パターン Resource オブジェクト IOExceptionSE - I/O エラーの場合 public void start()
Lifecycleコンポーネントがすでに実行されている場合は、例外をスローしないでください。
コンテナーの場合、これは適用されるすべてのコンポーネントに開始シグナルを伝播します。
Lifecycle の start SmartLifecycle.isAutoStartup()public void stop()
LifecycleSmartLifecycle とその stop(Runnable) バリアントの実装を検討してください。 この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、Lifecycle Bean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止シグナルを事前に考慮することなく呼び出されます。
コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。
コンテナーの場合、これは停止シグナルを適用するすべてのコンポーネントに伝播します。
Lifecycle の stop SmartLifecycle.stop(Runnable), DisposableBean.destroy()public boolean isRunning()
Lifecycle コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、true を返します。
protected abstract void refreshBeanFactory()
throws BeansException,
IllegalStateExceptionSErefresh() によって呼び出されます。サブクラスは、新しい 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