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