- java.lang.Object
 -  
      
- javax.management.NotificationBroadcasterSupport
 
 
-  
       
- All Implemented Interfaces:
 -  
         
NotificationBroadcaster,NotificationEmitter 
- 已知直接子类:
 -  
         
JMXConnectorServer,Monitor,RelationService,Timer 
public class NotificationBroadcasterSupport extends Object implements NotificationEmitter
提供
NotificationEmitter接口的实现。 这可以用作发送通知的MBean的超类。默认情况下,通知调度模型是同步的。 也就是说,当线程调用sendNotification时,每个侦听器的
NotificationListener.handleNotification方法在该线程中被调用。 您可以通过在子类中覆盖handleNotification来覆盖此默认值,也可以将Executor传递给构造函数。如果过滤器或监听器的方法调用引发了一个
异常,则该异常并不阻止其他侦听器被调用。 但是,如果过滤器或Executor.execute或handleNotification(当未指定Excecutor)的方法调用将抛出一个Error,那么该Error将传播给呼叫者sendNotification。使用JMX Remote API添加的远程侦听器(见JMXConnector)通常不会同步调用。 也就是说,当sendNotification返回时,不能保证任何远程侦听器尚未收到通知。
- 从以下版本开始:
 - 1.5
 
 
-  
        
       
-  
             
构造方法摘要
构造方法 Constructor 描述 NotificationBroadcasterSupport()构造一个NotificationBroadcasterSupport,其中每个侦听器被发送通知的线程调用。NotificationBroadcasterSupport(Executor executor)NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)NotificationBroadcasterSupport(MBeanNotificationInfo... info)构建一个NotificationBroadcasterSupport,其中包含可能发送的通知的信息。 
-  
             
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 voidaddNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)添加一个监听器。MBeanNotificationInfo[]getNotificationInfo()返回一个数组,指示MBean可能发送的每个通知,通知的Java类的名称和通知类型。protected voidhandleNotification(NotificationListener listener, Notification notif, Object handback)为每个侦听器调用此方法由sendNotification发送通知给该侦听器。voidremoveNotificationListener(NotificationListener listener)从这个MBean中删除一个监听器。voidremoveNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)从这个MBean中删除一个监听器。voidsendNotification(Notification notification)发送通知。 
 -  
             
 
-  
        
       
-  
             
构造方法详细信息
-  
NotificationBroadcasterSupport
public NotificationBroadcasterSupport()
构造一个NotificationBroadcasterSupport,其中每个侦听器被发送通知的线程调用。 此构造函数相当于NotificationBroadcasterSupport(null, null)。 
-  
NotificationBroadcasterSupport
public NotificationBroadcasterSupport(Executor executor)
构造一个NotificationBroadcasterSupport,其中使用给定的Executor调用每个侦听器 。 当sendNotification被调用时,选择了一个监听器,如果它是用空加NotificationFilter,或者如果isNotificationEnabled的通知返回true发送。 对NotificationFilter.isNotificationEnabled的调用发生在调用sendNotification的线程中。 然后,对于每个所选择的监听器,executor.execute被调用,调用一个命令handleNotification方法。 该构造函数相当于NotificationBroadcasterSupport(executor, null)。- 参数
 -  
              
executor- 方法sendNotification用于发送每个通知的执行器。 如果为null,则调用sendNotification的线程将自动调用handleNotification方法。 - 从以下版本开始:
 - 1.6
 
 
-  
NotificationBroadcasterSupport
public NotificationBroadcasterSupport(MBeanNotificationInfo... info)
构建一个NotificationBroadcasterSupport,其中包含可能发送的通知的信息。 发送通知的线程调用每个侦听器。 此构造函数相当于
NotificationBroadcasterSupport(null, info)。如果
info数组不为空,则由构造函数克隆,如同通过info.clone(),每次调用getNotificationInfo()返回一个新的克隆。- 参数
 -  
              
info- 一个数组,指示MBean可能发送的每个通知,通知的Java类的名称和通知类型。 可以为空,这相当于一个空数组。 - 从以下版本开始:
 - 1.6
 
 
-  
NotificationBroadcasterSupport
public NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)
构造一个NotificationBroadcasterSupport,其中包含有关可能发送的通知的信息,以及使用给定的
Executor调用每个侦听器的信息 。当
sendNotification被调用时,选择了一个监听器,如果它是用空加NotificationFilter,或者如果isNotificationEnabled的通知返回true发送。 调用NotificationFilter.isNotificationEnabled发生在调用sendNotification的线程中。 然后,对于每个所选择的监听器,executor.execute被调用,调用一个命令handleNotification方法。如果
info数组不为空,则由构造函数克隆,如同info.clone(),每次调用getNotificationInfo()返回一个新的克隆。- 参数
 -  
              
executor- 方法sendNotification用于发送每个通知的执行者。 如果为null,则调用sendNotification的线程将自动调用handleNotification方法。 -  
              
info- 一个数组,指示MBean可能发送的每个通知,通知的Java类的名称和通知类型。 可以为空,这相当于一个空数组。 - 从以下版本开始:
 - 1.6
 
 
 -  
 
-  
             
方法详细信息
-  
addNotificationListener
public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
添加一个监听器。- Specified by:
 -  
              
addNotificationListener在接口NotificationBroadcaster - 参数
 -  
              
listener- 接收通知的侦听器。 -  
              
filter- 过滤器对象。 如果过滤器为空,则在处理通知之前不会执行过滤。 -  
              
handback- 发出通知时要发送回侦听器的不透明对象。 该通知广播对象无法使用此对象。 通知发送者应该重新发送更改。 - 异常
 -  
              
IllegalArgumentException- 如果监听器为空,则抛出。 - 另请参见:
 -  
              
removeNotificationListener(javax.management.NotificationListener) 
 
-  
removeNotificationListener
public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
说明从界面NotificationBroadcaster复制从这个MBean中删除一个监听器。 如果侦听器已经注册了不同的回传对象或通知过滤器,则与侦听器对应的所有条目都将被删除。- Specified by:
 -  
              
removeNotificationListener在接口NotificationBroadcaster - 参数
 -  
              
listener- 以前添加到此MBean的侦听器。 - 异常
 -  
              
ListenerNotFoundException- 监听器未注册到MBean。 - 另请参见:
 -  
              
NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object),NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object) 
 
-  
removeNotificationListener
public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
说明从接口NotificationEmitter复制从这个MBean中删除一个监听器。 该MBean必须有一个与给定匹配的侦听
listener,filter,并handback参数。 如果有多个这样的听众,只有一个被删除。filter和handback参数可能为null,当且仅当在要删除的侦听器中为null时。- Specified by:
 -  
              
removeNotificationListener在接口NotificationEmitter - 参数
 -  
              
listener- 以前添加到此MBean的侦听器。 -  
              
filter- 添加侦听器时指定的过滤器。 -  
              
handback- 添加侦听器时指定的handback。 - 异常
 -  
              
ListenerNotFoundException- 侦听器未注册到MBean,或者没有向给定的过滤器和回传注册。 
 
-  
getNotificationInfo
public MBeanNotificationInfo[] getNotificationInfo()
描述从接口NotificationBroadcaster复制返回一个数组,指示MBean可能发送的每个通知,通知的Java类的名称和通知类型。
MBean发送不在此阵列中描述的通知并不是非法的。 但是,MBean服务器的某些客户端可能依赖于正确运行的阵列。
- Specified by:
 -  
              
getNotificationInfo在接口NotificationBroadcaster - 结果
 - 可能通知的数组。
 
 
-  
sendNotification
public void sendNotification(Notification notification)
发送通知。 如果在构造函数中指定了一个Executor,则每个选定的侦听器将为其提供一个任务,以将通知传递给该侦听器。- 参数
 -  
              
notification- 发送通知。 
 
-  
handleNotification
protected void handleNotification(NotificationListener listener, Notification notif, Object handback)
为每个侦听器调用此方法为
sendNotification,以便向该侦听器发送通知。 在子类中可以覆盖它,以更改通知传递的行为,例如在单独的线程中传递通知。此方法的默认实现方式相当于
listener.handleNotification(notif, handback);- 参数
 -  
              
listener- 正在传送通知的收听者。 -  
              
notif- 通知正在传送给听众。 -  
              
handback- the handback object that was supplied when the listener was added. 
 
 -  
 
 -