public class ServletContextScope extends ObjectSE implements Scope, DisposableBean
Scope ラッパー、つまりグローバル Web アプリケーション属性用。これは、ServletContext の属性を公開するという点で、従来の Spring シングルトンとは異なります。これらの属性は、アプリケーション全体がシャットダウンするたびに破棄されます。これは、含まれている Spring ApplicationContext のシャットダウンよりも早いまたは遅い可能性があります。
関連する破棄メカニズムは、web.xml に登録されている ContextCleanupListener に依存しています。ContextLoaderListener には ContextCleanupListener の機能が含まれていることに注意してください。
このスコープは、キー "application" でデフォルトのスコープとして登録されています。
ContextCleanupListener| コンストラクターと説明 |
|---|
ServletContextScope(ServletContextEE servletContext) 指定された ServletContext の新しいスコープラッパーを作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | destroy() 登録されているすべての破棄コールバックを呼び出します。 |
ObjectSE | get(StringSE name, ObjectFactory<?> objectFactory) 基になるスコープから指定された名前のオブジェクトを返します。基になるストレージメカニズムで見つからない場合は creating it。 |
StringSE | getConversationId() 存在する場合、現在の基礎となるスコープの会話 ID を返します。 |
void | registerDestructionCallback(StringSE name, RunnableSE callback) スコープ内の指定されたオブジェクトの破棄(またはスコープが個々のオブジェクトを破棄せず、その全体で終了する場合はスコープ全体の破棄)で実行されるコールバックを登録します。 |
ObjectSE | remove(StringSE name) 指定された name を持つオブジェクトを基になるスコープから削除します。 |
ObjectSE | resolveContextualObject(StringSE key) 指定されたキーがある場合、そのコンテキストオブジェクトを解決します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic ServletContextScope(ServletContextEE servletContext)
servletContext - ラップする ServletContextpublic ObjectSE get(StringSE name, ObjectFactory<?> objectFactory)
Scopecreating it。これは、Scope の中心的な操作であり、絶対に必要な唯一の操作です。
Scope の get name - 取得するオブジェクトの名前 objectFactory - 基になるストレージメカニズムに存在しない場合、スコープオブジェクトの作成に使用する ObjectFactorynull)@Nullable public ObjectSE remove(StringSE name)
Scopename を持つオブジェクトを基になるスコープから削除します。 オブジェクトが見つからなかった場合、null を返します。それ以外の場合は、削除された Object を返します。
実装は、指定されたオブジェクトの登録された破棄コールバックも削除する必要があることに注意してください。ただし、この場合、登録された破棄コールバックを実行する必要はありません。オブジェクトは呼び出し元によって破棄されるためです(適切な場合)。
注: これはオプションの操作です。実装は、オブジェクトの明示的な削除をサポートしていない場合、UnsupportedOperationExceptionSE をスローする場合があります。
Scope の remove name - 削除するオブジェクトの名前 null Scope.registerDestructionCallback(java.lang.String, java.lang.Runnable)public void registerDestructionCallback(StringSE name, RunnableSE callback)
Scope注: これはオプションの操作です。このメソッドは、実際の破棄構成(DisposableBean、destroy-method、DestructionAwareBeanPostProcessor)を持つスコープ付き Bean に対してのみ呼び出されます。実装は、適切なタイミングで特定のコールバックを実行するために最善を尽くす必要があります。そのようなコールバックが基礎となるランタイム環境によってまったくサポートされていない場合、コールバックは無視され、対応する警告がログに記録される必要があります。
「破棄」とは、アプリケーションによって明示的に削除された個々のスコープオブジェクトではなく、スコープ自体のライフサイクルの一部としてオブジェクトを自動的に破棄することです。スコープ付きオブジェクトがこのファサードの Scope.remove(String) メソッドを介して削除された場合、削除されたオブジェクトが再利用されるか手動で破棄されると仮定して、登録されている破棄コールバックも削除する必要があります。
Scope の registerDestructionCallback name - 破棄コールバックを実行するオブジェクトの名前 callback - 実行される破棄コールバック。渡された Runnable は例外をスローしないため、try-catch ブロックを囲むことなく安全に実行できることに注意してください。さらに、Runnable は通常、そのターゲットオブジェクトも直列化可能であれば、直列化可能です。DisposableBean, AbstractBeanDefinition.getDestroyMethodName(), DestructionAwareBeanPostProcessor@Nullable public ObjectSE resolveContextualObject(StringSE key)
ScopeScope の resolveContextualObject key - コンテキストキー null @Nullable public StringSE getConversationId()
Scope 会話 ID の正確な意味は、基礎となるストレージメカニズムによって異なります。セッションスコープのオブジェクトの場合、会話 ID は通常 session IDEE と等しい(または派生する)でしょう。セッション全体に含まれるカスタム会話の場合、現在の会話の特定の ID が適切です。
注: これはオプションの操作です。基になるストレージメカニズムにこのような ID の明らかな候補がない場合、このメソッドの実装で null を返すことは完全に有効です。
Scope の getConversationId null public void destroy()
DisposableBean の destroy ContextCleanupListener