public abstract class AbstractApplicationEventMulticaster extends ObjectSE implements ApplicationEventMulticaster, BeanClassLoaderAware, BeanFactoryAware
ApplicationEventMulticaster
インターフェースの抽象的な実装。基本的なリスナー登録機能を提供します。デフォルトでは、リスナーをリンクされたセット内に保持するため、同じリスナーの複数のインスタンスは許可されません。ApplicationListener オブジェクトを保持するために使用されるコレクションクラスは、"collectionClass" Bean プロパティを通じてオーバーライドできます。
ApplicationEventMulticaster の実際の ApplicationEventMulticaster.multicastEvent(org.springframework.context.ApplicationEvent)
メソッドの実装はサブクラスに任されています。SimpleApplicationEventMulticaster
は、登録されているすべてのリスナーにすべてのイベントをマルチキャストし、呼び出しスレッドで呼び出します。これらの点で、代替の実装はより洗練されている可能性があります。
getApplicationListeners(ApplicationEvent, ResolvableType)
, SimpleApplicationEventMulticaster
コンストラクターと説明 |
---|
AbstractApplicationEventMulticaster() |
修飾子と型 | メソッドと説明 |
---|---|
void | addApplicationListener(ApplicationListener<?> listener) すべてのイベントを通知するリスナーを追加します。 |
void | addApplicationListenerBean(StringSE listenerBeanName) すべてのイベントの通知を受けるリスナー Bean を追加します。 |
protected CollectionSE<ApplicationListener<?>> | getApplicationListeners() すべての ApplicationListeners を含むコレクションを返します。 |
protected CollectionSE<ApplicationListener<?>> | getApplicationListeners(ApplicationEvent event, ResolvableType eventType) 指定されたイベント型に一致する ApplicationListeners のコレクションを返します。 |
void | removeAllListeners() このマルチキャスターに登録されているすべてのリスナーを削除します。 |
void | removeApplicationListener(ApplicationListener<?> listener) 通知リストからリスナーを削除します。 |
void | removeApplicationListenerBean(StringSE listenerBeanName) 通知リストからリスナー Bean を削除します。 |
void | setBeanClassLoader(ClassLoaderSE classLoader) Bean class loader SE を Bean インスタンスに提供するコールバック。 |
void | setBeanFactory(BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。 |
protected boolean | supportsEvent(ApplicationListener<?> listener, ResolvableType eventType, ClassSE<?> sourceType) 指定されたリスナーが指定されたイベントをサポートするかどうかを決定します。 |
protected boolean | supportsEvent(ClassSE<?> listenerType, ResolvableType eventType) インスタンス化を試みる前に、一般的に宣言されたイベント型をチェックして、リスナーを早期にフィルターします。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
multicastEvent, multicastEvent
public void setBeanClassLoader(ClassLoaderSE classLoader)
BeanClassLoaderAware
class loader
SE を Bean インスタンスに提供するコールバック。 通常の Bean プロパティの設定後、ただし InitializingBean's
InitializingBean.afterPropertiesSet()
メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanClassLoaderAware
の setBeanClassLoader
classLoader
- 所有クラスローダー public void setBeanFactory(BeanFactory beanFactory)
BeanFactoryAware
通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet()
またはカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanFactoryAware
の setBeanFactory
beanFactory
- 所有 BeanFactory(非 null
)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。BeanInitializationException
public void addApplicationListener(ApplicationListener<?> listener)
ApplicationEventMulticaster
ApplicationEventMulticaster
の addApplicationListener
listener
- 追加するリスナー public void addApplicationListenerBean(StringSE listenerBeanName)
ApplicationEventMulticaster
ApplicationEventMulticaster
の addApplicationListenerBean
listenerBeanName
- 追加するリスナー Bean の名前 public void removeApplicationListener(ApplicationListener<?> listener)
ApplicationEventMulticaster
ApplicationEventMulticaster
の removeApplicationListener
listener
- 削除するリスナー public void removeApplicationListenerBean(StringSE listenerBeanName)
ApplicationEventMulticaster
ApplicationEventMulticaster
の removeApplicationListenerBean
listenerBeanName
- 追加するリスナー Bean の名前 public void removeAllListeners()
ApplicationEventMulticaster
削除呼び出しの後、新しいリスナーが登録されるまで、マルチキャスターはイベント通知に対してアクションを実行しません。
ApplicationEventMulticaster
の removeAllListeners
protected CollectionSE<ApplicationListener<?>> getApplicationListeners()
ApplicationListener
protected CollectionSE<ApplicationListener<?>> getApplicationListeners(ApplicationEvent event, ResolvableType eventType)
event
- 伝播するイベント。キャッシュされた一致情報に基づいて、一致しないリスナーを早期に除外できます。eventType
- イベント型 ApplicationListener
protected boolean supportsEvent(ClassSE<?> listenerType, ResolvableType eventType)
このメソッドが最初のパスとして指定されたリスナーの true
を返す場合、リスナーインスタンスは取得され、その後 supportsEvent(ApplicationListener, ResolvableType, Class)
呼び出しを介して完全に評価されます。
listenerType
- BeanFactory によって決定されるリスナーの型 eventType
- チェックするイベント型 protected boolean supportsEvent(ApplicationListener<?> listener, ResolvableType eventType, @Nullable ClassSE<?> sourceType)
デフォルトの実装では、SmartApplicationListener
および GenericApplicationListener
インターフェースが検出されます。標準の ApplicationListener
の場合、GenericApplicationListenerAdapter
を使用して、ターゲットリスナの一般的に宣言された型をイントロスペクトします。
listener
- チェックするターゲットリスナー eventType
- 確認するイベント型 sourceType
- チェックするソース型