-
- 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
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 void
removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
从这个MBean中删除一个监听器。-
Methods inherited from interface 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,或者没有向给定的过滤器和回传注册。
-
-