多个mbean对象实现相同的接口

时间:2014-07-04 23:59:03

标签: jmx mbeans

我想创建2个实现相同接口的mbeans。这合法吗? 说我有一个界面:

interface HelloMBean
{
   void setVar();
   int getVar();
}

我需要2个mbean,实现不同。

class Hello implements HelloMBean
{
   ...
}

class HelloAnother implements HelloMBean
{
  ...
}

1 个答案:

答案 0 :(得分:2)

这不仅是合法的,而且意图以这种方式运作。

该接口描述了MBean上可用的操作和属性。 实现功能。

如果要在MBeanServer中注册MBean,请将ObjectName和实现传递给服务器。

这样,您可以并行注册MBeanServer中不同ObjectNames下的HelloHelloAnother,也可以在正在运行的服务器中交换HelloMBean的实现。 后者实际上是JBossAS 3 + 4为其所有热部署所做的事情。

MBean的客户端只能看到界面中的“方法”,并且正在与MBeanServer交谈,然后MBeanServer将调用转发给相应的实现。