-
- All Superinterfaces:
-
NotificationBroadcaster
- 所有已知实现类:
-
CounterMonitor,GaugeMonitor,JMXConnectorServer,MBeanServerDelegate,Monitor,NotificationBroadcasterSupport,RelationService,RequiredModelMBean,RMIConnectorServer,StandardEmitterMBean,StringMonitor,Timer
public interface NotificationEmitter extends NotificationBroadcaster
由发出通知的MBean实现的接口。 它允许将侦听器作为通知侦听器注册到MBean。
通知发送
当MBean发出通知时,它会将每个侦听器视为已添加
addNotificationListener,而不会随后通过removeNotificationListener删除。 如果为该侦听器提供了过滤器,并且过滤器的isNotificationEnabled方法返回false,则忽略该侦听器。 否则,将使用通知调用侦听器的handleNotification方法,以及提供给addNotificationListener对象。如果多次添加相同的侦听器,则会将其视为添加的次数。 使用不同的过滤器或回送对象添加相同的侦听器通常很有用。
关于调用过滤器和侦听器的方法的线程,此接口的实现可能不同。
如果过滤器或侦听器的方法调用抛出
异常,则该异常不应阻止调用其他侦听器。 但是,如果方法调用抛出Error,则建议在该点停止通知处理,如果可以将Error传播给通知的发送方,则应该这样做。新代码应优先使用此接口,而不是
NotificationBroadcaster接口。此接口和
NotificationBroadcaster应该注意同步。 特别是,实现在调用侦听器时保持任何锁定并不是一个好主意。 为了处理在发送通知时监听器列表可能发生变化的可能性,一个好的策略是使用CopyOnWriteArrayList来获取此列表。- 从以下版本开始:
- 1.5
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 voidremoveNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)从此MBean中删除侦听器。-
声明方法的接口 javax.management.NotificationBroadcaster
addNotificationListener, getNotificationInfo, removeNotificationListener
-
-
-
-
方法详细信息
-
removeNotificationListener
void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
从此MBean中删除侦听器。 该MBean必须有一个与给定匹配的侦听器
listener,filter和handback参数。 如果有多个这样的侦听器,则只删除一个。当且仅当在要删除的侦听器中它们为空时,
filter和handback参数可以为null。- 参数
-
listener- 先前已添加到此MBean的侦听器。 -
filter- 添加侦听器时指定的过滤器。 -
handback- 添加侦听器时指定的handback。 - 异常
-
ListenerNotFoundException- 侦听器未向MBean注册,或者未在给定的过滤器和回送中注册。
-
-