-
- 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
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 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
- 过滤器对象。 如果filter为null,则在处理通知之前不会执行任何过滤。 -
handback
- 发出通知时要发送回侦听器的不透明对象。 Notification广播器对象不能使用此对象。 通知听众应该保持不变。 - 异常
-
IllegalArgumentException
- 侦听器参数为null。 - 另请参见:
-
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.
-
-