有没有类似于Spring JMX导出器 WITHOUT 使用Spring框架?
SimpleJMX似乎是合理的,但似乎也是一个非常年轻的框架,仅由一个人推动。
我需要将一大堆属性,方法和类公开为JMX,但不想摆弄JMX API并编写大量的JMX接口。
并且没有办法在项目中引入Spring(以防你问)。非常感谢任何提示或想法: - )
答案 0 :(得分:2)
我在org.weakref.jmxutils
找到了commons-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();
}
我自己从未使用过该库,但似乎有效。
答案 1 :(得分:2)
好的,我已经快速评估了SimpleJMX和JMXUtils。两者都按预期工作,与Spring JMX导出器非常相似。但是,我发现JMXUtils在我的案例中更有用。
使用JMXUtils,可以很容易地将MBean注册/注销到已启动的平台mbean服务器。在我的情况下,我使用GlassFish V3作为应用程序服务器,我不想为我自己的mbeans启动另一个MBean Server。
据我所知,SimpleJMX的API不允许这样做,你要么被迫使用SimpleJMX API启动另一个MBeanServer并注册创建的mbeans(非常容易使用API),或者你开始摆弄尝试将mbeans注册到平台mbean服务器。后者稍微复杂一点,因此我决定使用JMXUtils。
JMXUtils的缺点是操纵bean名称。 SimpleJMX使用注释中的属性(domainName,beanName),这非常有用但是使用JMXUtils时,您必须知道在使用mbean域时命名mbeans的语法。总而言之,这并不是什么大问题,但就我而言,SimpleJMX有更好的解决方案。
最重要的是,这两个图书馆都很棒并且能够完成它们的工作。我决定使用JMXUtils。