1

我正在一个实现 MBean 的 java 项目中工作,我需要在注册之前拦截 MBean 并更改/添加它们的属性。例子 :

domainName:name=myMBean --> domainName:name=myMBean1,type=myType

我发现这个链接介绍了如何应用默认拦截器以外的拦截器,但我不知道如何在代码中执行此操作。

提前致谢。

4

1 回答 1

0

一旦你注册了 bean,显然为时已晚。最简单的方法是更改​​注册的完成方式。如果您向我们展示您用于注册 bean 的框架,那么我将能够提供更多帮助。

通常,实际注册的任何操作都在执行以下操作:

private MBeanServer mbeanServer;
...
mbeanServer.registerMBean(mbean, objectName);

因此,您可以提供不同的ObjectName

ObjectName objectName = new ObjectName("domainName:name=myMBean1,type=myType");

但我假设您不是自己进行注册。


顺便说一句,我不确定您是否可以切换到使用不同的 JMX 框架,但我最近对我的Simple JMX 系统进行了最后的润色。它允许对象在发布时以编程方式命名

于 2012-04-05T17:00:52.437 回答