2015-10-20 66 views
2

我MBean是使用Spring注解如下注释的操作选项卡:春ManagedAttribute出现在JMX控制台

@ManagedAttribute(description = "returns the name") 
    public String getName() { 
     return name; 
    } 

现在,每当我打开一个JMX控制台(无论是VisualVM的或JConsole的),我可以看到属性“选项卡中我的bean的属性,但我也可以看到”操作“选项卡中公开的getName()方法。有没有办法让我只能看到属性选项卡中的属性(即将其从操作选项卡中隐藏)?

回答

1

AbstractReflectiveMBeanInfoAssembler自2008年以来该代码:

// Attributes need to have their methods exposed as 
// operations to the JMX server as well. 

如果你看到javax.management.modelmbean.ModelMBeanOperationInfo的描述部分,你会看到,有参数role=gettervisibility=4,应该(这取决于应用程序,显示属性/操作)以某种方式被隐藏。

根据https://jira.spring.io/browse/SPR-4232查看更多详情。

+0

感谢您的信息!我觉得很奇怪的是,当通过VisualVM浏览一些JVM Mbeans时,我可以看到许多具有其属性的mbeans,但没有一个getters/setter,这让我认为必须有一种方法可以让你可以绕过AbstractReflectiveMBeanInfoAssembler中的上述代码并执行此操作。此外,即使您可以定义方法的可见性参数,如何让VisualVm忽略(即不显示)一个可视级别为4的操作? – anton4o