public class NotificationBroadcasterSupport extends Object implements NotificationEmitter
提供NotificationEmitter
接口的实现。这可以作为MBean发送通知的超类。
默认情况下,通知调度模型是同步的。那就是,当一个线程调用sendnotification,每个听众的NotificationListener.handleNotification
方法内的线程调用。你可以通过重写handleNotification
在子类中重写该默认,或通过执行器的构造函数。
如果一个过滤器或听众抛出一个异常
方法调用,那么例外并不妨碍其他听众被调用。然而,如果方法调用一个过滤器或Executor.execute
或handleNotification
(当没有指定Excecutor
)抛出一个Error
,那Error
传播到sendNotification
来电。
远程监听器添加使用JMX远程API(见JMXConnector)通常不被称为同步。那就是,当sendnotification回报,也不能保证任何远程听众尚未收到通知。
Constructor and Description |
---|
NotificationBroadcasterSupport()
构建了一个notificationbroadcastersupport每个听众的线程调用发送通知。
|
NotificationBroadcasterSupport(Executor executor)
构建了一个notificationbroadcastersupport每个侦听器使用给定的
Executor 调用。
|
NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)
构建了一个关于可能发送的通知信息notificationbroadcastersupport,和每个听众是使用给定的
Executor 调用。
|
NotificationBroadcasterSupport(MBeanNotificationInfo... info)
构建了一个关于可能发送的通知信息notificationbroadcastersupport。
|
Modifier and Type | Method and Description |
---|---|
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)
发送通知。
|
public NotificationBroadcasterSupport()
NotificationBroadcasterSupport(null, null)
。
public NotificationBroadcasterSupport(Executor executor)
Executor
调用。当
sendNotification
称,听众是如果是添加一个空
NotificationFilter
选择,或者如果
isNotificationEnabled
返回发送的通知。电话
NotificationFilter.isNotificationEnabled
发生在线程调用
sendNotification
。然后,为每个选定的听众,
executor.execute
调用命令调用
handleNotification
方法。此构造函数相当于
NotificationBroadcasterSupport(executor, null)
。
executor
-的方法
sendNotification
用来发送的每个通知执行。如果它是空的,线程调用
sendNotification
将调用
handleNotification
方法本身。
public NotificationBroadcasterSupport(MBeanNotificationInfo... info)
构建了一个关于可能发送的通知信息notificationbroadcastersupport。每个侦听器都由发送通知的线程调用。此构造函数相当于NotificationBroadcasterSupport(null, info)
。
如果info
阵列不是空的,那么它是克隆的构造函数,如info.clone()
,每个电话getNotificationInfo()
返回一个新的克隆。
info
-数组表示,每个通知MBean可能发送的通知和通知类型的java类的名称。可以是空的,这相当于一个空数组。
public NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)
构建了一个关于可能发送的通知信息notificationbroadcastersupport,和每个听众是使用给定的Executor
调用。
当sendNotification
称,听众是如果是添加一个空NotificationFilter
选择,或者如果isNotificationEnabled
返回发送的通知。电话NotificationFilter.isNotificationEnabled
发生在线程调用sendNotification
。然后,为每个选定的听众,executor.execute
调用命令调用handleNotification
方法。
如果info
阵列不是空的,那么它是克隆的构造函数,如info.clone()
,每个电话getNotificationInfo()
返回一个新的克隆。
executor
-的方法
sendNotification
用来发送的每个通知执行。如果它是空的,线程调用
sendNotification
将调用
handleNotification
方法本身。
info
-数组表示,每个通知MBean可能发送的通知和通知类型的java类的名称。可以是空的,这相当于一个空数组。
public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
addNotificationListener
接口
NotificationBroadcaster
listener
-监听器接收通知。
filter
-滤波对象。如果过滤器为空,则在处理通知之前没有进行过滤。
handback
-一个不透明的物体被送回听者当通知发出。此对象不能被通知广播对象使用。它应该是怨恨与通知的通知不变。
IllegalArgumentException
如果听者是空抛。
removeNotificationListener(javax.management.NotificationListener)
public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
NotificationBroadcaster
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)
public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
NotificationEmitter
从这个MBean移除侦听器。MBean必须完全匹配listener
听众了,filter
,和handback
参数。如果有多于一个这样的侦听器,只有一个被删除。
的filter
和handback
参数可以为null,如果他们在听众被删除是空的。
removeNotificationListener
接口
NotificationEmitter
listener
-听者以前添加到这个MBean。
filter
-过滤器,当你添加指定的。
handback
-盖印,指定当听众加入。
ListenerNotFoundException
-听者不是MBean注册,或不与给定的滤波器和盖印注册。
public MBeanNotificationInfo[] getNotificationInfo()
NotificationBroadcaster
返回一个数组表示,每个通知MBean可能发送的通知和通知类型的java类的名称。
对于MBean发送该数组中没有描述的通知不违法。然而,这个MBean服务器的一些客户可能取决于阵列完成其正确运作。
getNotificationInfo
接口
NotificationBroadcaster
public void sendNotification(Notification notification)
Executor
在构造函数中指定了,它将给每一个任务选择听众传递通知,听众。
notification
-通知发送。
protected void handleNotification(NotificationListener listener, Notification notif, Object handback)
这种方法被称为sendNotification
为了每个监听器发送通知,听众。它可以在子类中重写改变通知传递的行为,例如在一个独立的线程中传递的通知。
此方法的默认实现相当于
听众。handlenotification(通知、盖印);
listener
-听者的通知交付。
notif
-通知传递给听众。
handback
- handback对象,提供当听众加入。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.