-
- 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 方法 描述 void
addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
添加一个监听器到这个MBean。MBeanNotificationInfo[]
getNotificationInfo()
返回一个数组,指示MBean可能发送的每个通知,通知的Java类的名称和通知类型。void
removeNotificationListener(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.
-
-