我想创建2个实现相同接口的mbeans。这合法吗? 说我有一个界面:
interface HelloMBean
{
void setVar();
int getVar();
}
我需要2个mbean,实现不同。
class Hello implements HelloMBean
{
...
}
class HelloAnother implements HelloMBean
{
...
}
答案 0 :(得分:2)
这不仅是合法的,而且意图以这种方式运作。
该接口描述了MBean上可用的操作和属性。 实现功能。
如果要在MBeanServer中注册MBean,请将ObjectName
和实现传递给服务器。
这样,您可以并行注册MBeanServer中不同ObjectNames下的Hello
和HelloAnother
,也可以在正在运行的服务器中交换HelloMBean
的实现。
后者实际上是JBossAS 3 + 4为其所有热部署所做的事情。
MBean的客户端只能看到界面中的“方法”,并且正在与MBeanServer交谈,然后MBeanServer将调用转发给相应的实现。