-
- All Known Subinterfaces:
-
ModelMBean,ModelMBeanNotificationBroadcaster,NotificationEmitter
- 所有已知实现类:
-
CounterMonitor,GaugeMonitor,JMXConnectorServer,MBeanServerDelegate,Monitor,NotificationBroadcasterSupport,RelationService,RequiredModelMBean,RMIConnectorServer,StandardEmitterMBean,StringMonitor,Timer
public interface NotificationBroadcaster由发出通知的MBean实现的接口。 它允许监听器作为通知监听器注册到MBean。
通知发送
当MBean发出通知时,它会考虑已添加的每个监听器,不包括
addNotificationListener,而不是随后用removeNotificationListener删除。 如果为该监听器提供过滤器,并且如果过滤器的isNotificationEnabled方法返回false,则忽略监听器。 否则,将使用通知调用监听器的handleNotification方法,以及提供给addNotificationListener对象。如果同一个监听器被多次添加,它被认为是添加的次数。 通过不同的过滤器或回传对象添加相同的监听器通常很有用。
关于调用过滤器和侦听器的方法的线程,此接口的实现可能会有所不同。
如果过滤器或侦听器的方法调用引发了一个
异常,则该异常不应阻止其他侦听器被调用。 但是,如果方法调用抛出一个Error,那么建议在该点停止通知的处理,如果可以将Error传播给通知的发件人,那么应该这样做。新代码应该使用
NotificationEmitter接口。该接口和
NotificationEmitter应该小心同步。 特别地,实现该方法在调用监听器时保持任何锁定并不是一个好主意。 要处理在发送通知时听众列表可能更改的可能性,一个好的策略是使用CopyOnWriteArrayList作为此列表。- 从以下版本开始:
- 1.5
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 voidaddNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)添加一个监听器到这个MBean。MBeanNotificationInfo[]getNotificationInfo()返回一个数组,指示MBean可能发送的每个通知,通知的Java类的名称和通知类型。voidremoveNotificationListener(NotificationListener listener)从这个MBean中删除一个监听器。
-
-
-
方法详细信息
-
addNotificationListener
void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
添加一个监听器到这个MBean。- 参数
-
listener- 将处理广播公司发出的通知的侦听器对象。 -
filter- 过滤器对象。 如果过滤器为空,则在处理通知之前不会执行过滤。 -
handback- 发出通知时要发送回侦听器的不透明对象。 该通知广播对象无法使用此对象。 通知发送者应该重新发送更改。 - 异常
-
IllegalArgumentException- 侦听器参数为空。 - 另请参见:
-
removeNotificationListener(javax.management.NotificationListener)
-
removeNotificationListener
void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
从这个MBean中删除一个监听器。 如果侦听器已经注册了不同的回传对象或通知过滤器,则与侦听器对应的所有条目都将被删除。- 参数
-
listener- 以前添加到此MBean的侦听器。 - 异常
-
ListenerNotFoundException- 监听器未注册到MBean。 - 另请参见:
-
addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object),NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
-
getNotificationInfo
MBeanNotificationInfo[] getNotificationInfo()
返回一个数组,指示MBean可能发送的每个通知,通知的Java类的名称和通知类型。
MBean发送不在此阵列中描述的通知并不是非法的。 但是,MBean服务器的某些客户端可能依赖于正确运行的阵列。
- 结果
- the array of possible notifications.
-
-