所有类


javax.management
类 NotificationBroadcasterSupport

java.lang.Object
  继承者 javax.management.NotificationBroadcasterSupport
所有已实现的接口:
NotificationBroadcaster, NotificationEmitter
直接已知子类:
JMXConnectorServer, Monitor, RelationService, Timer

public class NotificationBroadcasterSupport
   
   
   
   
   
extends Object
implements NotificationEmitter

提供 NotificationEmitter 接口的实现。这可以用作发送通知的 MBean 的超类。

并未指定通知调度模型是同步的还是异步的。也就是说,当某些线程调用 sendNotification 时,可以在该线程内调用每个侦听器的 NotificationListener.handleNotification 方法(同步模型),也可以在某个其他线程内调用这些方法(异步模型)。

应用程序不应依赖于通知调度是同步的还是异步的。因此:

  • 应用程序不应假定使用的是同步模型。sendNotification 方法返回时,并不保证已调用每个侦听器的 handleNotification 方法。也不保证侦听器将以生成通知的相同顺序看到这些通知。依赖于通知顺序的侦听器应该使用这些通知的序列号来确定其顺序(请参见 Notification.getSequenceNumber())。
  • 应用程序不应假定使用的是异步模型。如果侦听器执行的操作可能较慢,则该侦听器应该安排在另一个线程中执行这些操作,以避免阻挡其他侦听器和 sendNotification 的调用方。

从以下版本开始:
1.5

构造方法摘要
NotificationBroadcasterSupport()
           
 
方法摘要
 void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          添加一个侦听器。
 MBeanNotificationInfo[] getNotificationInfo()
          返回一个数组,指示此 MBean 可能发送的每个通知的 Java 类名和通知类型。
protected  void handleNotification(NotificationListener listener, Notification notif, Object handback)
          为了向侦听器发送通知,由该侦听器的 sendNotification 调用此方法。
 void removeNotificationListener(NotificationListener listener)
          从此 MBean 移除一个侦听器。
 void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          从此 MBean 中移除一个侦听器。
 void sendNotification(Notification notification)
          发送一个通知。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

NotificationBroadcasterSupport

public NotificationBroadcasterSupport()
方法详细信息

addNotificationListener

public void addNotificationListener(NotificationListener listener,
                                    NotificationFilter filter,
                                    Object handback)
添加一个侦听器。

指定者:
接口 NotificationBroadcaster 中的 addNotificationListener
参数:
listener - 要接收通知的侦听器。
filter - 过滤器对象。如果 filter 为 null,则处理通知前不执行过滤。
handback - 发出通知时要发送到侦听器的不透明对象。Notifica+ion 广播者对象不能使用此对象。应该不作更改并带有通知的情况下将其重新发送到侦听器。
抛出:
IllegalArgumentException - 如果 listener 为 null。
另请参见:
removeNotificationListener(javax.management.NotificationListener)

removeNotificationListener

public void removeNotificationListener(NotificationListener listener)
                                throws ListenerNotFoundException
从接口 NotificationBroadcaster 复制的描述
从此 MBean 移除一个侦听器。如果已向不同的回调对象或通知过滤器注册了该侦听器,则移除与该侦听器有关的所有项。

指定者:
接口 NotificationBroadcaster 中的 removeNotificationListener
参数:
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 必须有一个与给定 listenerfilterhandback 参数完全相符的侦听器。如果有多个此种侦听器,则只移除一个。

当且仅当 filterhandback 在要移除的侦听器中为 null 时,这两个参数才可以为 null。

指定者:
接口 NotificationEmitter 中的 removeNotificationListener
参数:
listener - 以前添加到此 MBean 的侦听器。
filter - 添加侦听器时所指定的过滤器。
handback - 添加侦听器时所指定的回调。
抛出:
ListenerNotFoundException - 如果侦听器未向该 MBean 注册,或者没有用给定的过滤器和回调注册它。

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()
从接口 NotificationBroadcaster 复制的描述

返回一个数组,指示此 MBean 可能发送的每个通知的 Java 类名和通知类型。

MBean 发送此数组中未描述的通知是合法的。但是,某些 MBean 服务器的客户端要想正常运行,可能要依赖于完整的数组。

指定者:
接口 NotificationBroadcaster 中的 getNotificationInfo
返回:
可能的通知数组。

sendNotification

public void sendNotification(Notification notification)
发送一个通知。

参数:
notification - 要发送的通知。

handleNotification

protected void handleNotification(NotificationListener listener,
                                  Notification notif,
                                  Object handback)

为了向侦听器发送通知,由该侦听器的 sendNotification 调用此方法。在子类中可重写此方法,以更改通知传递的行为,例如在一个单独的线程中传递该通知。

并不保证调用此方法的线程就是调用 sendNotification 的线程。

此方法的默认实现等效于

 listener.handleNotification(notif, handback);
 

参数:
listener - 将通知传递到的侦听器。
notif - 向侦听器所传递的通知。
handback - 添加侦听器时所提供的回调对象。

所有类

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部