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 | removeApplicationListenerBeans(PredicateSE<StringSE> predicate) 登録されたリスナー Bean 名のセットから一致するすべてのリスナー Bean を削除します( ApplicationListener インターフェースを直接実装する Bean クラスを参照します)。 |
void | removeApplicationListeners(PredicateSE<ApplicationListener<?>> predicate) 登録された ApplicationListener インスタンスのセットから一致するすべてのリスナーを削除します(ApplicationListenerMethodAdapter などのアダプタークラスを含みます。 |
void | setBeanClassLoader(ClassLoaderSE classLoader)Bean class loaderSE を 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, waitSEmulticastEvent, multicastEventpublic void setBeanClassLoader(ClassLoaderSE classLoader)
BeanClassLoaderAwareclass loaderSE を 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 は、ファクトリのメソッドをすぐに呼び出すことができます。BeanInitializationExceptionpublic void addApplicationListener(ApplicationListener<?> listener)
ApplicationEventMulticasterApplicationEventMulticaster の addApplicationListener listener - 追加するリスナー ApplicationEventMulticaster.removeApplicationListener(ApplicationListener), ApplicationEventMulticaster.removeApplicationListeners(Predicate)public void addApplicationListenerBean(StringSE listenerBeanName)
ApplicationEventMulticasterApplicationEventMulticaster の addApplicationListenerBean listenerBeanName - 追加するリスナー Bean の名前 ApplicationEventMulticaster.removeApplicationListenerBean(String), ApplicationEventMulticaster.removeApplicationListenerBeans(Predicate)public void removeApplicationListener(ApplicationListener<?> listener)
ApplicationEventMulticasterApplicationEventMulticaster の removeApplicationListener listener - 削除するリスナー ApplicationEventMulticaster.addApplicationListener(ApplicationListener), ApplicationEventMulticaster.removeApplicationListeners(Predicate)public void removeApplicationListenerBean(StringSE listenerBeanName)
ApplicationEventMulticasterApplicationEventMulticaster の removeApplicationListenerBean listenerBeanName - 削除するリスナー Bean の名前 ApplicationEventMulticaster.addApplicationListenerBean(String), ApplicationEventMulticaster.removeApplicationListenerBeans(Predicate)public void removeApplicationListeners(PredicateSE<ApplicationListener<?>> predicate)
ApplicationEventMulticasterApplicationListener インスタンスのセットから一致するすべてのリスナーを削除します(これには、アノテーション付き EventListener メソッドなどの ApplicationListenerMethodAdapter などのアダプタークラスが含まれます)。メモ: これはインスタンス登録にのみ適用され、Bean 名で登録されたリスナーには適用されません。
ApplicationEventMulticaster の removeApplicationListeners predicate - 削除するリスナーインスタンスを識別する述語。例: SmartApplicationListener.getListenerId() をチェックしています ApplicationEventMulticaster.addApplicationListener(ApplicationListener), ApplicationEventMulticaster.removeApplicationListener(ApplicationListener)public void removeApplicationListenerBeans(PredicateSE<StringSE> predicate)
ApplicationEventMulticasterApplicationListener インターフェースを直接実装する Bean クラスを参照します)。 メモ: これは、プログラムで登録された ApplicationListener インスタンスではなく、Bean 名の登録にのみ適用されます。
ApplicationEventMulticaster の removeApplicationListenerBeans predicate - 削除するリスナー Bean 名を識別するための述語 ApplicationEventMulticaster.addApplicationListenerBean(String), ApplicationEventMulticaster.removeApplicationListenerBean(String)public void removeAllListeners()
ApplicationEventMulticasterremove 呼び出しの後、新しいリスナーが登録されるまで、マルチキャスターはイベント通知に対してアクションを実行しません。
protected CollectionSE<ApplicationListener<?>> getApplicationListeners()
ApplicationListenerprotected CollectionSE<ApplicationListener<?>> getApplicationListeners(ApplicationEvent event, ResolvableType eventType)
event - 伝播するイベント。キャッシュされた一致情報に基づいて、一致しないリスナーを早期に除外できます。eventType - イベント型 ApplicationListenerprotected 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 - チェックするソース型