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