public class JmsListenerAnnotationBeanPostProcessor extends ObjectSE implements MergedBeanDefinitionPostProcessor, Ordered, BeanFactoryAware, SmartInitializingSingleton
JmsListenerContainerFactory
の背後に作成された JMS メッセージリスナーコンテナーによって呼び出される JmsListener
でアノテーションが付けられたメソッドを登録する Bean ポストプロセッサー。 アノテーション付きメソッドは、JmsListener
で定義されている柔軟な引数を使用できます。
このポストプロセッサーは、Spring の <jms:annotation-driven>
XML 要素によって、また EnableJms
アノテーションによって自動的に登録されます。
コンテナー内の JmsListenerConfigurer
インスタンスを自動検出し、使用するレジストリのカスタマイズ、デフォルトのコンテナーファクトリ、エンドポイント登録のきめ細かな制御を可能にします。使用方法の詳細については、EnableJms
javadoc を参照してください。
JmsListener
, EnableJms
, JmsListenerConfigurer
, JmsListenerEndpointRegistrar
, JmsListenerEndpointRegistry
, JmsListenerEndpoint
, MethodJmsListenerEndpoint
修飾子と型 | フィールドと説明 |
---|---|
protected Log | logger |
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
コンストラクターと説明 |
---|
JmsListenerAnnotationBeanPostProcessor() |
修飾子と型 | メソッドと説明 |
---|---|
void | afterSingletonsInstantiated() シングルトン事前インスタンス化フェーズの終わりに呼び出され、すべての通常のシングルトン Bean がすでに作成されていることを保証します。 |
protected MethodJmsListenerEndpoint | createMethodJmsListenerEndpoint() 空の MethodJmsListenerEndpoint をインスタンス化して、processJmsListener(org.springframework.jms.annotation.JmsListener, java.lang.reflect.Method, java.lang.Object) で提供されるパラメーターを使用してさらに構成します。 |
int | getOrder() このオブジェクトの順序値を取得します。 |
ObjectSE | postProcessAfterInitialization(ObjectSE bean, StringSE beanName) Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)の後に、指定された新しい Bean インスタンスにこの BeanPostProcessor を適用します。 |
ObjectSE | postProcessBeforeInitialization(ObjectSE bean, StringSE beanName) Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)の前に、この BeanPostProcessor を指定された新しい Bean インスタンスに適用します。 |
void | postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, ClassSE<?> beanType, StringSE beanName) 指定された Bean の指定されたマージ済み Bean 定義を後処理します。 |
protected void | processJmsListener(JmsListener jmsListener, MethodSE mostSpecificMethod, ObjectSE bean) 指定された JmsListener アノテーションを指定されたメソッドで処理し、指定された Bean インスタンスに対応するエンドポイントを登録します。 |
void | setBeanFactory(BeanFactory beanFactory) BeanFactory を使用可能にすることはオプションです。設定しない場合、JmsListenerConfigurer Bean は自動検出されず、endpoint registry を明示的に構成する必要があります。 |
void | setContainerFactoryBeanName(StringSE containerFactoryBeanName) デフォルトで使用する JmsListenerContainerFactory の名前を設定します。 |
void | setEndpointRegistry(JmsListenerEndpointRegistry endpointRegistry) 作成したエンドポイントを保持し、関連するリスナーコンテナーのライフサイクルを管理する JmsListenerEndpointRegistry を設定します。 |
void | setMessageHandlerMethodFactory(MessageHandlerMethodFactory messageHandlerMethodFactory) MessageHandlerMethodFactory を使用して、このプロセッサーによって検出されたエンドポイントを処理するメッセージリスナーを構成するように設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
resetBeanDefinition
protected final Log logger
public int getOrder()
Ordered
値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット load-on-startup
の値に多少似ています)。
同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。
Ordered
の getOrder
Ordered.HIGHEST_PRECEDENCE
, Ordered.LOWEST_PRECEDENCE
public void setContainerFactoryBeanName(StringSE containerFactoryBeanName)
JmsListenerContainerFactory
の名前を設定します。何も指定されていない場合は、"jmsListenerContainerFactory" が定義されているとみなされます。
public void setEndpointRegistry(JmsListenerEndpointRegistry endpointRegistry)
JmsListenerEndpointRegistry
を設定します。public void setMessageHandlerMethodFactory(MessageHandlerMethodFactory messageHandlerMethodFactory)
MessageHandlerMethodFactory
を使用して、このプロセッサーによって検出されたエンドポイントを処理するメッセージリスナーを構成するように設定します。 デフォルトでは DefaultMessageHandlerMethodFactory
が使用され、追加のメソッド引数をサポートするように、または変換と検証のサポートをカスタマイズするようにさらに構成できます。詳細については、DefaultMessageHandlerMethodFactory
Javadoc を参照してください。
public void setBeanFactory(BeanFactory beanFactory)
BeanFactory
を使用可能にすることはオプションです。設定しない場合、JmsListenerConfigurer
Bean は自動検出されず、endpoint registry
を明示的に構成する必要があります。BeanFactoryAware
の setBeanFactory
beanFactory
- 所有 BeanFactory(非 null
)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。BeanInitializationException
public void afterSingletonsInstantiated()
SmartInitializingSingleton
ListableBeanFactory.getBeansOfType(java.lang.Class<T>)
呼び出しは、ブートストラップ中に偶発的な副作用を引き起こしません。 注意 : このコールバックは、BeanFactory
ブートストラップ後にオンデマンドで遅延初期化されたシングルトン Bean ではトリガーされず、他の Bean スコープでもトリガーされません。意図されたブートストラップセマンティクスのみを使用する Bean には慎重に使用してください。
SmartInitializingSingleton
の afterSingletonsInstantiated
public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, ClassSE<?> beanType, StringSE beanName)
MergedBeanDefinitionPostProcessor
MergedBeanDefinitionPostProcessor
の postProcessMergedBeanDefinition
beanDefinition
- Bean のマージされた Bean 定義 beanType
- 管理対象 Bean インスタンスの実際の型 beanName
- Bean の名前 AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Class<?>, java.lang.String)
public ObjectSE postProcessBeforeInitialization(ObjectSE bean, StringSE beanName) throws BeansException
BeanPostProcessor
afterPropertiesSet
またはカスタム init メソッドなど)の前に、この BeanPostProcessor を指定された新しい Bean インスタンスに適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。 デフォルトの実装は、指定された bean
をそのまま返します。
BeanPostProcessor
の postProcessBeforeInitialization
bean
- 新しい Bean インスタンス beanName
- Bean の名前 null
の場合、後続の BeanPostProcessors は呼び出されません BeansException
- エラーの場合 InitializingBean.afterPropertiesSet()
public ObjectSE postProcessAfterInitialization(ObjectSE bean, StringSE beanName) throws BeansException
BeanPostProcessor
afterPropertiesSet
またはカスタム init メソッドなど)の後に、指定された新しい Bean インスタンスにこの BeanPostProcessor を適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。FactoryBean の場合、このコールバックは、FactoryBean インスタンスと、FactoryBean によって作成されたオブジェクト(Spring 2.0 以降)の両方に対して呼び出されます。ポストプロセッサーは、対応する bean instanceof FactoryBean
チェックを介して、FactoryBean または作成されたオブジェクトのいずれか、あるいはその両方に適用するかどうかを決定できます。
このコールバックは、他のすべての BeanPostProcessor コールバックとは対照的に、InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String)
メソッドによってトリガーされた短絡後にも呼び出されます。
デフォルトの実装は、指定された bean
をそのまま返します。
BeanPostProcessor
の postProcessAfterInitialization
bean
- 新しい Bean インスタンス beanName
- Bean の名前 null
の場合、後続の BeanPostProcessors は呼び出されません BeansException
- エラーの場合 InitializingBean.afterPropertiesSet()
, FactoryBean
protected void processJmsListener(JmsListener jmsListener, MethodSE mostSpecificMethod, ObjectSE bean)
JmsListener
アノテーションを指定されたメソッドで処理し、指定された Bean インスタンスに対応するエンドポイントを登録します。jmsListener
- 処理するアノテーション mostSpecificMethod
- アノテーション付きメソッド bean
- メソッドを呼び出すインスタンス createMethodJmsListenerEndpoint()
, JmsListenerEndpointRegistrar.registerEndpoint(org.springframework.jms.config.JmsListenerEndpoint, org.springframework.jms.config.JmsListenerContainerFactory<?>)
protected MethodJmsListenerEndpoint createMethodJmsListenerEndpoint()
MethodJmsListenerEndpoint
をインスタンス化して、processJmsListener(org.springframework.jms.annotation.JmsListener, java.lang.reflect.Method, java.lang.Object)
で提供されるパラメーターを使用してさらに構成します。MethodJmsListenerEndpoint
またはそのサブクラス MethodJmsListenerEndpoint.createMessageListenerInstance()