八. ApplicationEventMulticaster接口

功能: 该接口由可以管理多个ApplicationListener对象并向其发布事件的对象实现。一个 org.springframework.context.ApplicationEventPublisher通常是一个org.springframework.context.ApplicationContext,可以使用ApplicationEventMulticaster作为实际发布事件的委托。

该接口定义了一下几个方法。

//添加一个侦听器以通知所有事件

void addApplicationListener(ApplicationListener<?> listener);

//添加一个侦听器bean以通知所有事件

void addApplicationListenerBean(String listenerBeanName);

//从通知列表中删除侦听器

void removeApplicationListener(ApplicationListener<?> listener);

//从通知列表中删除侦听器bean

void removeApplicationListenerBean(String listenerBeanName);

//从已注册的ApplicationListener实例集中删除所有匹配的侦听器(包括适配器类,如ApplicationListenerMethodAdapter,例如注释的EventListener方法)。

// 注意:这仅适用于实例注册,而不适用于按bean名称注册的侦听器。

void removeApplicationListeners(Predicate<ApplicationListener<?>> predicate);

//从注册的侦听器bean名称集中删除所有匹配的侦听器bean(引用bean类,这些bean类反过来直接实现ApplicationListener接口)。

//注意:这仅适用于bean名称注册,而不适用于以编程方式注册的ApplicationListener实例。

void removeApplicationListenerBeans(Predicate<String> predicate);

//删除所有注册到此multicaster的侦听器。

//在删除调用之后,在注册新的侦听器之前,Multimaster不会对事件通知执行任何操作。

void removeAllListeners();

//将给定的应用程序事件多播到适当的侦听器。

//如果可能,考虑使用multicastEvent(ApplicationEvent,ResolvableType),因为它为基于泛型的事件提供了更好的支持。

void multicastEvent(ApplicationEvent event);

//将给定的应用程序事件多播到适当的侦听器。

//如果eventType为null,则基于事件实例生成默认类型。

void multicastEvent(ApplicationEvent event, @Nullable ResolvableType eventType);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容