- java.lang.Object
-
- javax.management.NotificationBroadcasterSupport
-
- 实现的所有接口
-
NotificationBroadcaster
,NotificationEmitter
- 已知直接子类:
-
JMXConnectorServer
,Monitor
,RelationService
,Timer
public class NotificationBroadcasterSupportextends Objectimplements 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对象。
-
-