public class JmsListenerEndpointRegistry extends ObjectSE implements DisposableBean, SmartLifecycle, ApplicationContextAware, ApplicationListener<ContextRefreshedEvent>
MessageListenerContainer
インスタンスを作成します。また、特にアプリケーションコンテキストのライフサイクル内で、リスナーコンテナーのライフサイクルを管理します。 手動で作成された MessageListenerContainers
とは異なり、レジストリによって管理されるリスナーコンテナーは、アプリケーションコンテキストでは Bean ではなく、オートワイヤーの候補ではありません。管理目的でこのレジストリのリスナーコンテナーにアクセスする必要がある場合は、getListenerContainers()
を使用します。特定のメッセージリスナーコンテナーにアクセスする必要がある場合は、エンドポイントの ID を指定して getListenerContainer(String)
を使用します。
JmsListenerEndpoint
, MessageListenerContainer
, JmsListenerContainerFactory
修飾子と型 | フィールドと説明 |
---|---|
protected Log | logger |
DEFAULT_PHASE
コンストラクターと説明 |
---|
JmsListenerEndpointRegistry() |
修飾子と型 | メソッドと説明 |
---|---|
protected MessageListenerContainer | createListenerContainer(JmsListenerEndpoint endpoint, JmsListenerContainerFactory<?> factory) 指定されたファクトリを使用して新しいコンテナーを作成して開始します。 |
void | destroy() Bean の破棄時に、包含 BeanFactory によって呼び出されます。 |
MessageListenerContainer | getListenerContainer(StringSE id) 指定された ID を持つ MessageListenerContainer またはそのようなコンテナーが存在しない場合は null を返します。 |
SetSE<StringSE> | getListenerContainerIds() マネージド MessageListenerContainer インスタンスの ID を返します。 |
CollectionSE<MessageListenerContainer> | getListenerContainers() マネージド MessageListenerContainer インスタンスを返します。 |
int | getPhase() このライフサイクルオブジェクトが実行されるはずのフェーズを返します。 |
boolean | isRunning() このコンポーネントが現在実行されているかどうかを確認します。 |
void | onApplicationEvent(ContextRefreshedEvent event) アプリケーションイベントを処理します。 |
void | registerListenerContainer(JmsListenerEndpoint endpoint, JmsListenerContainerFactory<?> factory) 指定された JmsListenerEndpoint のメッセージリスナーコンテナーを作成します。 |
void | registerListenerContainer(JmsListenerEndpoint endpoint, JmsListenerContainerFactory<?> factory, boolean startImmediately) 指定された JmsListenerEndpoint のメッセージリスナーコンテナーを作成します。 |
void | setApplicationContext(ApplicationContext applicationContext) このオブジェクトが実行される ApplicationContext を設定します。 |
void | start() このコンポーネントを起動します。 |
void | stop() このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。 |
void | stop(RunnableSE callback) Lifecycle コンポーネントが現在実行中の場合、停止する必要があることを示します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
isAutoStartup
protected final Log logger
public void setApplicationContext(ApplicationContext applicationContext)
ApplicationContextAware
通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet()
またはカスタム init メソッドなどの init コールバックの前に呼び出されます。ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)
、ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher)
および MessageSourceAware
の後に呼び出されます(該当する場合)。
ApplicationContextAware
の setApplicationContext
applicationContext
- このオブジェクトによって使用される ApplicationContext オブジェクト BeanInitializationException
public void onApplicationEvent(ContextRefreshedEvent event)
ApplicationListener
ApplicationListener<ContextRefreshedEvent>
の onApplicationEvent
event
- 応答するイベント @Nullable public MessageListenerContainer getListenerContainer(StringSE id)
MessageListenerContainer
またはそのようなコンテナーが存在しない場合は null
を返します。id
- コンテナーの IDnull
JmsListenerEndpoint.getId()
, getListenerContainerIds()
public SetSE<StringSE> getListenerContainerIds()
MessageListenerContainer
インスタンスの ID を返します。getListenerContainer(String)
public CollectionSE<MessageListenerContainer> getListenerContainers()
MessageListenerContainer
インスタンスを返します。public void registerListenerContainer(JmsListenerEndpoint endpoint, JmsListenerContainerFactory<?> factory, boolean startImmediately)
JmsListenerEndpoint
のメッセージリスナーコンテナーを作成します。これにより、構成に関してエンドポイントを尊重するために必要なインフラストラクチャが作成されます。
startImmediately
フラグは、コンテナーをすぐに開始する必要があるかどうかを決定します。
endpoint
- 追加するエンドポイント factory
- 使用するリスナーファクトリ startImmediately
- 必要に応じてすぐにコンテナーを開始します getListenerContainers()
, getListenerContainer(String)
public void registerListenerContainer(JmsListenerEndpoint endpoint, JmsListenerContainerFactory<?> factory)
JmsListenerEndpoint
のメッセージリスナーコンテナーを作成します。これにより、構成に関してエンドポイントを尊重するために必要なインフラストラクチャが作成されます。
endpoint
- 追加するエンドポイント factory
- 使用するリスナーファクトリ registerListenerContainer(JmsListenerEndpoint, JmsListenerContainerFactory, boolean)
protected MessageListenerContainer createListenerContainer(JmsListenerEndpoint endpoint, JmsListenerContainerFactory<?> factory)
public int getPhase()
SmartLifecycle
デフォルトの実装は、通常の Lifecycle
実装の後に stop()
コールバックを実行させるために、SmartLifecycle.DEFAULT_PHASE
を返します。
Phased
の getPhase
SmartLifecycle
の getPhase
SmartLifecycle.isAutoStartup()
, Lifecycle.start()
, SmartLifecycle.stop(Runnable)
, DefaultLifecycleProcessor.getPhase(Lifecycle)
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 void stop(RunnableSE callback)
SmartLifecycle
提供されたコールバックは、LifecycleProcessor
によって使用され、共通のシャットダウン順序値を持つすべてのコンポーネントの順序付けられた、潜在的に同時のシャットダウンをサポートします。コールバック は、SmartLifecycle
コンポーネントが実際に停止した後に実行する必要があります。
LifecycleProcessor
は、stop
メソッドのこのバリアントのみを呼び出します。つまり、SmartLifecycle
実装では、このメソッドの実装内に明示的に委譲されない限り、Lifecycle.stop()
は呼び出されません。
デフォルトの実装は Lifecycle.stop()
に委譲し、呼び出しスレッドで指定されたコールバックをすぐにトリガーします。2 つの間に同期がないことに注意してください。カスタム実装では、少なくとも共通のライフサイクルモニター(存在する場合)内に同じ手順を入れたい場合があります。
SmartLifecycle
の stop
Lifecycle.stop()
, SmartLifecycle.getPhase()
public boolean isRunning()
Lifecycle
コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、true
を返します。
public void destroy()
DisposableBean
BeanFactory
によって呼び出されます。DisposableBean
の destroy