2015-10-20 64 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