JMX-Spring - 什么时候播放'JMXNotification'?

时间:2010-11-23 20:07:59

标签: java spring notifications jmx

我正在浏览Spring上的JMX documentation并看到以下段落:

By configuring NotificationListeners in place, every time a JMX Notification is broadcast
from the target MBean (bean:name=testBean1),the ConsoleLoggingNotificationListener bean
that was registered as a listener via the notificationListenerMappings property will be 
notified.

这就是ConsoleLoggingNotificationListener的实施方式:

public class ConsoleLoggingNotificationListener
               implements NotificationListener, NotificationFilter {

    public void handleNotification(Notification notification, Object handback) {
        System.out.println(notification);
        System.out.println(handback);
    }

    public boolean isNotificationEnabled(Notification notification) {
        return AttributeChangeNotification.class.isAssignableFrom(notification.getClass());
    }
}

但是,既然我是新手,我想知道什么时候播出JMX Notification?是否JMX暴露属性的值已更改

请帮助我知道这一点。

谢谢!

2 个答案:

答案 0 :(得分:0)

我想这个问题与Spring本身无关。如果我理解正确,则此处的通知为javax.management.Notification objects

我还没看过,但乍一看this article似乎以相当广泛的方式涵盖了这个话题。

而且,正如您所看到的,属性更改是广播通知时的事件之一。

答案 1 :(得分:0)

也许有点太晚了..但是由于这个问题没有被接受的答案我会发布我的答案。

Spring文档也说:

Spring的JMX通知发布支持中的关键接口是NotificationPublisher接口(在org.springframework.jmx.export.notification包中定义)。任何将通过MBeanExporter实例导出为MBean的bean都可以实现相关的NotificationPublisherAware接口以获取对NotificationPublisher实例的访问权。

您正在寻找的答案在上面摘录的最后一句

参考:http://static.springsource.org/spring/docs/3.0.0.M3/reference/html/ch24s07.html#jmx-notifications-listeners