5

在不使用 Spring 框架的情况下,有没有类似于 Spring JMX 导出器的东西?

SimpleJMX似乎是合理的,但似乎也是一个非常年轻的框架,仅由一个人推动。

我需要将一大堆属性、方法和类公开为 JMX,但不想摆弄 JMX API 并编写大量 JMX 接口。

并且没有办法在项目中引入 Spring(以防万一)。非常感谢任何提示或想法:-)

4

2 回答 2

2

好的,我已经快速评估了 SimpleJMXJMXUtils。两者都按预期工作,并且与 Spring JMX 导出器非常相似。但是,我发现 JMXUtils 在我的情况下更有用。

使用 JMXUtils,将 MBean 注册/注销到已经启动的平台 mbean 服务器非常容易。在我的例子中,我使用 GlassFish V3 作为应用程序服务器,我不想仅仅为我自己的 mbeans 启动另一个 MBean 服务器。

据我所见,SimpleJMX 的 API 不允许这样做,您要么被迫使用 SimpleJMX API 启动另一个 MBeanServer 并注册创建的 mbean(使用 API 非常容易),要么你开始摆弄尝试注册 mbean进入平台 mbean 服务器。后者稍微复杂一些,因此我决定使用 JMXUtils。

JMXUtils 的缺点是对 bean 名称的操作。SimpleJMX 在注解中使用属性(domainName、beanName),这非常有用,但是使用 JMXUtils 时,您必须知道在使用 mbean 域时命名 mbean 的语法。总而言之,没什么大不了的,但就我的口味而言,SimpleJMX 对此有更好的解决方案。

最重要的是,这两个库都很棒并且可以完成他们的工作。我决定使用 JMXUtils。

于 2012-06-28T08:11:03.507 回答
2

org.weakref.jmxutilscommons-dbcp-jmx中访问库。查看ManagedBasicDataSource.java示例:

@Managed(description = "The current number of active connections that have been allocated from this data source.")
public synchronized int getNumActive() {
    return super.getNumActive();
}

我自己从未使用过那个库,但似乎可以工作。

于 2012-06-26T08:55:21.580 回答