我正在一个实现 MBean 的 java 项目中工作,我需要在注册之前拦截 MBean 并更改/添加它们的属性。例子 :
domainName:name=myMBean --> domainName:name=myMBean1,type=myType
我发现这个链接介绍了如何应用默认拦截器以外的拦截器,但我不知道如何在代码中执行此操作。
提前致谢。
一旦你注册了 bean,显然为时已晚。最简单的方法是更改注册的完成方式。如果您向我们展示您用于注册 bean 的框架,那么我将能够提供更多帮助。
通常,实际注册的任何操作都在执行以下操作:
private MBeanServer mbeanServer;
...
mbeanServer.registerMBean(mbean, objectName);
因此,您可以提供不同的ObjectName
:
ObjectName objectName = new ObjectName("domainName:name=myMBean1,type=myType");
但我假设您不是自己进行注册。
顺便说一句,我不确定您是否可以切换到使用不同的 JMX 框架,但我最近对我的Simple JMX 系统进行了最后的润色。它允许对象在发布时以编程方式命名。