功能: 该接口由可以管理多个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);