- java.lang.Object
-
- javax.management.NotificationBroadcasterSupport
-
- 实现的所有接口
-
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
-
-
构造方法摘要
构造方法 构造器 描述 NotificationBroadcasterSupport()
构造一个NotificationBroadcasterSupport,其中每个侦听器都由发送通知的线程调用。NotificationBroadcasterSupport(Executor executor)
NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)
NotificationBroadcasterSupport(MBeanNotificationInfo... info)
使用有关可能发送的通知的信息构造NotificationBroadcasterSupport。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
添加一个监听器。protected void
handleNotification(NotificationListener listener, Notification notif, Object handback)
对于每个侦听器,此方法由sendNotification
调用,以便将通知发送到该侦听器。void
sendNotification(Notification notification)
发送通知。-
声明方法的类 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
声明方法的接口 javax.management.NotificationBroadcaster
getNotificationInfo, removeNotificationListener
-
声明方法的接口 javax.management.NotificationEmitter
removeNotificationListener
-
-
-
-
构造方法详细信息
-
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()
,并且每次调用NotificationBroadcaster.getNotificationInfo()
都会返回一个新克隆。- 参数
-
info
- 一个数组,指示此MBean可能发送的每个通知,通知的Java类的名称和通知类型。 可以为null,相当于一个空数组。 - 从以下版本开始:
- 1.6
-
NotificationBroadcasterSupport
public NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)
构造一个NotificationBroadcasterSupport,其中包含有关可能发送的通知的信息,以及使用给定的
Executor
调用每个侦听器的位置 。当
sendNotification
被调用时,选择了一个监听器,如果它是用空加NotificationFilter
,或者isNotificationEnabled
的通知返回true发送。 对NotificationFilter.isNotificationEnabled
的调用发生在调用sendNotification
的线程中。 然后,对于每个所选择的监听器,executor.execute
被调用,调用一个命令handleNotification
方法。如果
info
数组不为空,则它由构造函数克隆,就像info.clone()
,并且每次调用NotificationBroadcaster.getNotificationInfo()
都会返回一个新克隆。- 参数
-
executor
- 方法sendNotification
用于发送每个通知的执行器。 如果为null,则调用sendNotification
的线程将调用handleNotification
方法本身。 -
info
- 一个数组,指示此MBean可能发送的每个通知,通知的Java类的名称和通知类型。 可以为null,相当于一个空数组。 - 从以下版本开始:
- 1.6
-
-
方法详细信息
-
addNotificationListener
public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
添加一个监听器。- Specified by:
-
addNotificationListener
在界面NotificationBroadcaster
- 参数
-
listener
- 接收通知的侦听器。 -
filter
- 过滤器对象。 如果filter为null,则在处理通知之前不会执行任何过滤。 -
handback
- 发出通知时要发送回侦听器的不透明对象。 Notification广播器对象不能使用此对象。 通知听众应该保持不变。 - 异常
-
IllegalArgumentException
- 如果侦听器为null,则抛出此异常。 - 另请参见:
-
NotificationBroadcaster.removeNotificationListener(javax.management.NotificationListener)
-
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
- 添加侦听器时提供的handback对象。
-
-